本帖最后由 zja666 于 2018-5-13 00:27 编辑
篇幅有限,捡一些写一下: 编译和java程序的运行关系: 1.java源文件(.java文件) 2.通过java编译器(javac.exe) 3.生成了java字节码文件(.class文件) 4.再由执行器(java.exe)将字节码文件加载到java虚拟机 5.字节码文件(.class)就会在java虚拟机中执行 注释:用于解释说明程序的文字,方便自己或者他人阅读代码 分类: 1.单行注释// 2.多行注释/* */ 3.文档注释/** */ 注意: 多行注释是不可以嵌套使用的,单行注释是可以的。多行注释是*/结尾的,只能有一个 多行注释与文档注释的区别: 多行注释的内容不能用于生成一个开发者文档,而文档注释 的内容可以生产一个开发者文档。 源反补: 源码:一个数的二进制表示法就是这个数的原码(负数的最高位是1,正数的最高位是0) 正数的源反补都是相同的 负数的反码是符号位不变,其他位取反,即0变1,1变0 负数的补码是反码+1 计算机里面使用补码进行运算的。 字符串参与运算 字符串后面的+,就是将元素都看做是字符串,字符串前面的加就是正常的int加运算 字符串数据和其他数据做+,结果是字符串类型。 这里的+不是加法运算,而是字符串连接符。 字符的+是加法运算 ++和--的用法 a:他们的作用是自增或者自减 b:使用 **单独使用 放在操作数据的前面和后面效果一样。 a++或者++a效果一样。 **参与操作使用,前加加或者后加加,参与运算的那个值都要是一个确定的值 ++(++a)--这样是不行的 放在操作数的前面:先自增或者自减,再参与操作 int a= 10; int b= ++a; 放在操作数的后面:先参与操作,再自增或者自减 int a= 10; int b= a++; 对于关系操作符 ==: 若操作数的类型是基本数据类型,则该关系操作符判断的是左右两边操作数的值是否相等,其实也是比较地址,比较的是字符串常量池里面的地址 若操作数的类型是引用数据类型,则该关系操作符判断的是左右两边操作数的内存地址是否相同。 next()与nextline()的区别 /t相当于键盘的Tab键,/n换行New Line,/r回车Carriage Return, 基本的概念应该是回车表示回到最前面,换行表示换一行。 操作系统的不同,换行符操也不同: char cal = sc.next().charAt(0);//保存键盘录入的char类型数据 /r Mac /n Unix/Linux /r/n Windows 这些都是空字符。 nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。 next()会自动消去有效字符前的空格,只返回输入的字符,不能得到带空格的字符串。 在同时有nextInt()与next(),输出整数和字符串必须这样,不然就要写出nextline()后在写nextInt(),颠倒就不会输出字符串 不过在大型程序中,大约每100行,写一个nextLine(),来消除空字符对内存的堆积。 字符串: String s=new String("hello");和Strings="hello"的区别 前者会创建2个对象,后者只会创建1个对象 ==:比较引用类型,比较的是地址值是否相同 equals:比较引用类型默认也是比较地址值是否相同,而String类重写了equals()方法 比较的是内容是否相同 字符串拼接 字符串如果是变量相加,先开空间,再拼接 字符串如果是常量相加,是先加,然后在常量池找,如果有就直接返回,否则,就创建
0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符) 控制符如:LF(换行),CR(回车),FF(换页),DEL(删除),BS(退格),BEL(振铃)等
Sting,StringBuffer,StringBuilder的区别 String是内容不可变的,而StringBuffer,StringBuilder都是内容可变的 StringBuffer是同步的,数据安全,效率低;StringBuilder是不同步,数据不安全,效率高 集合和数组的区别: A:长度区别 数组固定 集合可变 B:内容区别 数组可以是基本类型,也可以是引用类型 集合只能是引用类型 C:元素内容 数组只能存储同一种类型 集合可以存储不同类型(其实集合一般存储的也是同一种类型)
|