1.三种注释方式:⑴ //注释
⑵ /*注释*/
⑶ /**注释*/ (此方式可以用来自动地生成文档)
2.整型:
类 型 | 存储需求 | 取值范围 |
char | 2字节 | |
byte | 1字节 | - 27~27-1 |
short | 2字节 | -215~215-1 |
int | 4字节 | -231~231-1 |
long | 8字节 | -263~263-1 |
float | 4字节 | |
double | 8字节 |
3.按位运算符: &(”与“)、 |(”或“)、 ^(”异或“)、 ~(”非“)
移位运算符: <<运算符用0填充低位
>>>运算符将用0填充高位
>>运算符用符号位填充高位
木有<<<运算符。
△负数的二进制表示:先将绝对值转换为二进制,求反码,求出反码后加1.
PS:对移位运算符右侧的参数需要进行模32的运算(如果左边的操作数是long类型,则需要对右侧的参数进行模64运算)。for example:1<<35和1<<3是一样的。因为java中的int型占4个字节,即32位,如果人为移动32位,那么结果无意义,所以先将移动的位数对32取模。
4.当两个不同类型的数值变量进行二元运算时,先要将两个操作数转换为同一种类型再进行运算。
转换的优先顺序为:double>float>long>int
窄化转换(long转化为int)需要进行强制类型转换,扩展转换(int转换为long)不必进行显式转换。
5.取模(mod)和取余(rem)的区别(此区别为在数学软件matlab中,java中只有取余运算%):
当x和y的正负号一样时,两个函数的结果是相同的;
当x和y的符号不同时,rem函数的结果的符号和x一样,mod函数的结果的符号和y一样;
在java中,取余运算%的结果的符号和被除数一样!
如果基本的整数和浮点数不能满足需求,可以使用Math包中的BigInteger,BigDecimal。
BigInteger实现任意精度的整数运算,BigDecimal实现任意精度的浮点数运算。
定义一个BigInteger最常用的一种方法如下:
BigInteger big=new BigInteger("10000000000000000000000");//该构造函数传入的参数为String类型
另一种方法为:
BigInteger val;
val=BigInteger.valueOf(1000000000000000000L);//此方法传入的参数为long类型,所以传入的值不能超过Long.MAX_VALUE
大数值的运算不同于普通数的+-*/,需要通过方法进行加减乘除运算,常见的方法为:
static BigInteger valueOf(long val) ;//转换普通数值为大数值
BigInteger add(BigInteger val) ;//加
BigInteger subtract(BigInteger val) ;//减
BigInteger multiply(BigInteger val) ;//乘
BigInteger divide(BigInteger val) ;//除
int compareTo(BigInteger val) ;//比较两个大数值,若相等返回0,小于返回负数,否则返回正数
BigInteger mod(BigInteger m) ;//取余
7.命令行参数:
每一个java应用程序都有一个带String args[]参数的main方法,这个参数表明main函数可以接收一个字符串数组,即命令行参数。
eg:如果以java Message -g cruel world 运行Message,则args[0]="-g",args[1]="cruel",args[2]="world"
8.java中的包装类,装箱,拆箱:
java中有8种基础类型,分别是 byte,short,int,long,double,float,boolean,char
每种类型都有各自的包装类,包装类将基础数据类型包装成对象,并提供相应的方法,8种基础类型对应的包装类分别为:
boolean--Boolean char--Character
byte--Byte short--Short
int--Integer long--Long
float--Float double--Double
所谓装箱,就是把基本类型用相应的包装类包起来,使他们成为对象。
Integer i=new Integer(10);//手动装箱
所谓拆箱,就是将Integer这样的引用类型的对象重新简化为值类型的数据。
int j=i.intValue();//手动拆箱
JDK1.5以后可以自动装箱和拆箱:
Integer i=10;//自动装箱
int j=new Integer(10);//自动拆箱
9.==比较的是对象的引用,equals()默认比较的是对象的引用,但一般会覆盖equals()方法用于比较值。
10.当使用逻辑运算符的时候可能会出现短路现象,即一旦能够确定整个表达式的值,就不再计算表达式剩余的部分。
11.0X开头的表示十六进制,0开头的表示八进制,f/F结尾的表示float,d/D结尾的表示double,l/L结尾的表示long。
12.5个存储数据的地方:
⑴寄存器:位于处理器内部,最快的存储区,由编译器根据需求分配,在程序中无法控制
⑵栈(堆栈):位于RAM-随机访问存储器,存放基本类型的变量和对象的引用变量
⑶堆:位于RAM-随机访问存储器,存放new出来的对象
⑷常量存储:放在ROM-只读存储器。
⑸非RAM存储:有些数据存活于程序外,如流对象,即对象转化为字节流,可用于发送。持久化对象,即将对象存储在磁盘上。