编程规范不是语法, 是业内约定俗成的规则,程序员的潜规则。
Java的编程规范如下:(详细版本请参见阿里巴巴java手册)
1 每个部分之间用空行隔开。
2 要有空格和缩进。
3 所有类名要首字母大写,其它单词首字母也大写。
4 变量名和方法名首字母小写,其它单词首字母大写。
5 包名全小写,不同单词用点或者下划线隔开。
6 常量所有字母都大写,不同单词之间用下划线隔开。XXX_YYY_ZZZ
7 最好望文知意,尽量不要使用中文。
变量就是用于存取数据的,可以进行各种运算。变量本质就是一块内存。
程序必须的硬件是cpu和内存,CPU用于运算,内存用于储存数据。
无盘工作站:只包含CPU和内存。
硬盘和内存的区别:
内存是cpu可以直接访问的存储,因此速度快;但关机后会消失,不能永久保存。(此处不考虑RAM和ROM的问题)
硬盘cpu不能直接访问,需要加载到内存中才能使用,因此速度慢;但关机后可以保存。
数据在内存中以 变量 的形式存储;在硬盘中以 文件 的形式存储。
Java是强类型语言,变量在使用前必须声明。
Java变量使用前必须声明和初始化,声明就是变量第一次出现时,带类型定义。声明只做一次,以后直接使用即可。初始化就是第一次给变量赋值。
变量名必须先是标识符,标识符命名的一些规则:
1 必须是字母、数字、下划线、$等,不能是随意的字符。
2 数字不能是第一个字符。
3 不能是Java关键字,比如:public static class ….
4 不可以使用关键字和保留字,但能包含关键字和保留字。
5 可以是汉字,但是不推荐使用。
6 Java中严格区分大小写,长度无限制。
7 标识符不能包含空格。
标识符可以给类/变量/属性/方法/包 起名字。
JAVA中所有关键字均是小写,小写的不一定都是关键字。
保留关键字:const goto
Java的虚拟机是用C++写的。
extends 继承 ; final用来定义常量 ;
try catch finally 的组合用于处理异常 ;
implements 实现接口 和extends组合用于实现继承;
instance of 判断变量类型(多态的内容);interface 接口;
native 本地(调用系统);new 创建对象;
private protected public 代表访问权限;
return 方法返回值; strictfp 精确浮点运算;
enum 枚举 ; transiend I/O的内容
Java中变量按照数据类型分为基本数据类型和引用数据类型。
基本类型有8种。
整型:byte(8 bit) short int(默认类型) long
浮点型:float double (默认类型)
字符型:char('')
布尔类型: boolean(只能取值为true 或false,不能取null)
补充:按照在类中存在的位置的不同:成员变量 vs 局部变量
引用数据类型是更广泛的,包括所有的:类、接口、数组、枚举和标注。
内存/硬盘的存储单位:
计算机最基本的存储单位,一个二进制位(bit)。
计算机的底层只能存1和0,代表有电和没电。
计算机由很多个二进制位组成。
存储最常用的单位是 字节(byte),8个bit等于1个byte。
文件/内存的大小经常使用 kb / mb / gb / tb ,1k = 1024。也就是2的10次方。
基本类型包括:
整型4种 byte(1字节) / short(2) / int(4) / long(8)
浮点2种 float(4) / double(8)
布尔 boolean(1)
字符 char(2)
byte 的表述范围: -128 到 127 (负的2的7次方到正的2的7次方减1)
int 的表述范围: -2的31次方到2的31次方减1(正负21亿多)
整型默认是int,浮点默认是double。
整型可以用二进制、八进制、十六进制和十进制。其中,十六进制的10用A表示,15用F表示。以0开始的是八进制,以0x开始的是十六进制。
10 -> 10
010 -> 8
0x10 -> 16
二进制和十进制的进制转换:
二进制中,第一位叫符号位,0代表非负数,1代表负数,不参与运算。
正数的二进制转十进制 (以八位二进制为例)
权重:符号 64 32 16 8 4 2 1
0 1 1 1 0 1 0 1 -> 64+32+16+4+1 = 117
练习: 0101 1011 -> 64+16+8+2+1 = 91
正数的十进制转二进制
除2取余数,反向输出。
91 余1
45 余1
22 余0
11 余1
5 余1
2 余0
1 余1
0 0101 1011
57转二进制0011 1001
负数的十进制转二进制 需要先把正数的转换完成,再按位取反后加1(补码)。
十进制转二进制:
-95
95 -> 95-64 = 31-16 = 15-8 =7 -4 =3 -2 = 1
0 1 0 1 1 1 1 1 -> 0101 1111
1010 0000+1 = 1010 0001
-108 -> 0110 1100 -> 1001 0100
二进制转十进制:
先减1,再按位取反可以得到对应的正数。
按位取反后加1(补码)。
1010 0001 -1 = 1010 0000 -> 0101 1111 -> -95
0101 1110 +1 = 0101 1111 -> -95
1100 0011 -> 0011 1101 -> -61
设计一套砝码,要求能称1-100的所有重量,最少几个砝码。(砝码只在天平一边)
二进制表示1-100 所以 64 32 16 8 4 2 1 就可以。
long类型范围比int大,long类型的常数后面加L/l。
浮点类型:(小数)
float和double都是浮点,但Java的浮点都不准,只是一个算法近似值。
float叫单精度浮点,double叫双精度浮点。
0.1+0.2 不等于0.3 但是: 0.1+0.2+0.2 等于0.5 。
系统默认浮点是double,float必须加 f/F。0.3 是double , 0.3f是float。
如果计算比long大的整数或者精确(按多少位)运算,使用BigDecimal类。
字符类型:
字符类型的变量具备两种身份:字符和整数。对外是字符,但存的是整数,就是字符的编码。常见的编码:'A':65 'a':97 '0':48。
'0' 0 "0"不一样,分别是字符0,数字0和字符串0。
字符的表示方式:'a' '\uXXXX' 97 。
\ 是转义字符,常见的用法: '\n'换行 '\t'跳一个制表位 '\\'代表一个\
基本类型的类型转换:
1、 自动转换发生在小的表述范围到大的表述范围,即容量小的数据类型自动转换为容量大的数据类型。
布尔类型不参与类型转换。
byte-> short / char -> int -> long -> float -> double
常数可以自动类型转换。
注意:byte short char之间做运算,结果为int型!
2 、大的向小的转换时,需要强制类型转换,就是(目标类型)
作业:
1 输入圆的半径,输出圆的周长(2*PI*r)和面积(PI*r*r)。
2 输入4位整数,反向输出。比如:输入1234,输出4321。 1230 -> 321。
public class Reverse{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个四位整数");
int num = sc.nextInt(); //1 读入
int a = num%10; //个位数
int b = num/10%10;//十位数
int c = num/100%10;//百位数
int d = num/1000;//千位数 2 取位数
int res = a*1000+b*100+c*10+d;//3 拼装
System.out.println(res);
}
}