*自学总结,如有错误,欢迎指正*
1:关键字::都是小写,例如class。判断方法:编译器中与class颜色一样的则是关键字。
2:标识符::原则:数字不开头,不使用关键字。
组成:数字,英文字母,$,_。
注意:起名要有意义,每个单词首字母大写,强调阅读性。$与_的灵活使用可使层次分明。
3:注释::单行注释//...(对此行解说);多行注释/*...*/(对此段解说)文档注释(只有java有,相当与代码的说明书,可以通过java的一个工具java doc提取出来。)
4:注释的应用:调试(注释可能出错的地方)
(面试)特别注意:注释不会增加代码所占字节大小。因为注释是给人看的,不参与编译,不走字节码。
5:常量:: 分类:整数(二进制,八进制(0开头),十进制,十六进制(A——F(10——160x开头)),小数,字符(单引号),字符串(双引号),布尔boolean(ture,false),null(空)。
6:进制的由来::电路的开闭对应1和0;
7:进制的转换::十进制:二的对应位数减一的次幂相加 八进制:三位二进制(421) 十六进制:四位二进制(8421)
十进制转为二进制:辗转取余法(从下往上取)
8:负数的二进制取反::此数的正数二进制取反(0变1,1变0)加1。负数的二进制的最高位是1(因为取反)
9:变量的介绍(即数学中的未知数)::概念:在内存中的一个储存区域,有自己的名称(变量名)和类型(数据类型),而且在同一类型范围内可以不断的变化。
格式:数据类型 变量名 =初始化值 ;
作用:存放同一类型不定值,并可不断变化。
注意:使用范围在一对花括号之间,一定要有初始化值(即使一开始没有,后面也要有)。
数据类型:基本数据类型:数值型:整数(byte 1字节,short 2字节 ,(int 4字节(范围求法:int x=Integer.MAX(或者MIN)_VALUE;输出 (x);),long 8字节)
浮点(float 4字节 ,double 8字节)
字符型:char 2字节
布尔型:boolen 4字节
引用数据类型:类 (class) , 接口(interface), 数组([]);
整数默认:int ; 小数默认:double;
10:变量的基本演示::变量类型 变量名 = 初始化值;注意别超出数据范围;
11:类型提升&强制转换:: 范围:不同类型的数据进行运算时。
自动类型提升:以内存大的为主,即从小往大化。(丢失精度:byte a =1;a=a+4)
数据类型自动提升:byte,short,char>>int;
long>>long;
double>>double;
float>>float;
强制类型转化:byte a=1;a=byte(a+4);(丢失精度:byte a=1;a=byte(a+200);因为byte是1字节超出范围)
12:字符类型运算过程::ASCII表(a=97;A=65;+,-,*,/,数字)
国码表(汉字对应的数字)输出('你’+1)>>(对应数字)。
示例:输出('a')>>(a);输出('a'+1)>>(98);(自动类型提升)。
13:类型运算细节::范围求法:int x=Integer.MAX(或者MIN)_VALUE;输出 (x);)
14:算术运算符::(+,-,*,\,%,++,--)
注意+不止加法,还充当连接符号。如:System.out.println("a=%d,"+a+"b=%d"+b);
15:赋值运算符::(=,+=,-=,%=,\=,*=)
注意:b=a++(先赋值后运算);b=++a(先运算后赋值);原理:二进制运算,内存的保留。
(面试)::short s =2; s+=2; 与 s=s+2; 的区别:首先,s+=2通过编译而s=s+2不通过编译。因为s+=2在计算机底层进行了强制类型转换,这是赋值运算的特点;而s=s+2先+运算导致自动类型提升,丢失了精度 。