《java入门基础》读书笔记

小结
1.一个类的定义可以包含在另一个类中,这意味着一个.java文件可以包含多个类的定义。这种情况下的文件名与外层类的类名相同。
2.当从一个包中导入的一个类名与自身的类名一致时会发生名称冲突。当发生冲突时,冲突一方或两方都使用完全限定名称以便编译器明白所引用的类。
‌3.封装是将数据项和方法都隐藏在一个对象内部,对类对象的安全性和完整性很重要,同时拥有隐藏类具体实现的能力。
‌4.当赋值运算符右边的算数表达式结果和左边的变量数据库类型不一致时,会自动隐式转换。顺序byte short int  long float double.反方向为显式转换,显式转换规则:1.如果其中一个操作数为double,就在运算前将将另一个转换为double类型,float,long类型同理,比如,result=1.5+three/two;result=2.5  result=1.5+(double)three/two,result=3.0。注意转换类型时不能丢失信息,包括换到范围受限的类型和整数和浮点数之间的转换和double转换为float.即在两者都可接受的范围可以转换。
5‌.java所有二元整数运算只允许两个操作数都是int或者long类型。当遇到使用byte和short类型变量的算数表达式时,变量值会首先转换为int类型,然后使用32为的算数运算进行计算,结果也是int类型。一个32位的整数。
short  n1=5;
short  n2=10;
short  n3=0;
n3=n1+n2;
结果无法编译,纠正:n3=(short)(n1+n2);
‌正负数在整除时,负负得正,负正得负。
‌当取余运算符的一两个操作数为负数时,余数可能不明显。可以通过逆向得出。
8%(-3)=±2,但(-2)×(-3)+(+2)=8所以+2是对的。
6‌.final关键字设定了变量的值为final而且不能修改。
7‌.在字符串中总是需要使用转义序列\来设定双引号,否则会被解释为字符串结尾。想要将单引号设定为一个字符字面量的时候要使用转义字符。
8‌.负的二进制数用补码形式来表示。
‌9.数组是一个对象,用来处理多个同类型的值的集合。分配给数组变量的内存存储一个指向一个数组对象的引用,而不是存储数组本身,其中中括号在数组变量前后都可以,但常在前边。
‌重新引用数组变量,会抛弃对原有数组的引用,而指向新的数组。
‌数组内不一定都存储基本数据类型
‌变长的二维数组,可以按需分配节省内存。定义float[][] samples;
‌samples=new float[6][];//samples变量现在引用一个含有6个元素的数组
‌samples[2]=new float[6];//第3个一维数组有6个元素,下面同理。
‌samples[3]=new float[101];
‌定义三角形状for(int i=0;i<samples.length;++i){sample[i]= new float[i+1]}
‌初始化for(int i=0;i<samples.length;++i){for(int j=0;j<samples.length;++j){samples[i][j]=99.0f;
‌}}
‌二维数组由10个一维数组组成,每个一维数组有365个元素
‌初始化数组:可以变量之间复制,想当于复制地址。
‌double[]data=new double[100];
‌fill(data,5,11,1.5)//将data[5]-data[10]都设置为1.5
‌字符数组以U UTF-16储存,每个元素占两个字节。初始化java.util.Array.fill(message,' ');初始化为空字符如果将'\n'作为第二个字符,那么所有的数组元素都将包含一个换行符。也可以直接声明所有变量初始化。
‌作为规则,应该总是在声明变量时就初始化。string变量只是存储对应string对象在内存中的位置。也存在新引用覆盖旧引用。10.string变量可以通过再次赋值null丢弃原有引用,‌同声明基本数据类型数组一样
11.stringbuffer类操作更快但不能保证线程安全,多线程更安全。
stringbuilder单线程适合
12.可以创建任意多变量来指向同一个对象
13.传值只是意味着对于传给方法的每个参数都会制作一份副本,然后将副本而不是原始变量传给方法并且通过参数名进行引用。这暗示如果任何使用基本类型的变量作为参数,方法将无法在调用的程序中修改这个变量的值。

猜你喜欢

转载自blog.csdn.net/qq_40531768/article/details/79631233