SCJP 笔记(二)

1.~是对整数取反运算,例如~i=-i-1=-(i+1)
2.math.ceil()方法,向操作数正向取整,例如ceil(0.5d)=1.0;ceil(-0.5d)=-0.0;
math.floor()方法,向操作数的负向取整,例如floor(0.5d)=0.0;floor(-0.5d)=-0.0;
math.round()方法,对操作数取整,正向5入,负向6入。round(5.5d)=6.0;round(-5.6)=-6.0;round(-5.5)=-5.0;
math.max(val1,val2),min(val1,val2),可以对任意数字变量操作,并自动归一精确度。
math.random()方法,将产生一个随机数,它的范围在0-1之间。
round的返回值是int型的,其它的abs,ceil,floor,random,sin,cos,tan,sqat的返回值是double型的。
3.(4.4e3)的值是4.4*10的3次方
4.类的初始化:在类的定义中用{}包围起来的是initializer,它的初始化在构造方法之前。initializer分为静态的(在类加载时运行,只运行一次),非静态的(多次运行,每加载一次类,就执行一次)
5.&&与,||或,!非,^异或(两者相反时为真),
位运算&与,|或,!非,^异或
6.移位运算,>>带符号的右移位相当于整除2,>>>不带符号的右移(作用于位图运算,对负数处理时无算术意义),<<(不带符号的左移位相当于乘2)
7.equals可以判断两个相当类型的对象,并且值相等,为真,如果对象类型不同必为假。==(判断基本数据类型时用)可以判断两个对象指向同一地址时,为真。如果此类情况为真。String s1=“aa“;String s2=“aa“;s1==s2,为真,String s1=new String(“aa“);String s2=“aa“;s1==s2,为假。如果两个对象类型不同将产生编译错误。
8.包装类和String具有相似的特性,生成后均不可改变。
9.在静态方法里不能访问非静态的方法或变量,如果是通过该对象的实例就可以访问非静态方法和变量。
10.在定义方法时可以用throws声明抛出的异常,而在运行过程中可以用throw抛出需要抛出的异常。抛出异常一定要用try,catch,finally语句来捕捉,try一定要和catch或finally相配对,不过在定义方法时可以用一定要用catch来捕捉,但在执行抛出异常语句时一定要用catch来捕捉,否则无法编译,如果是非预测runtimeException异常则可以不受此限制。
11.yield(),sleep()是Thread类的静态方法,必须由正在执行的某个线程来执行。如果某个类继承了thread,那么它可以在实现了,public void run()方法后,可以直接调用start()方法。
12.如果同一个类的多个进程将共享该类的变量。
13.数在电脑里都是以补码的形式保存的,正数的补码就是正数本身,负数的补码等保留符号位,其它位取反+1,假如-7的原码为10000111,补码为11111000+1=11111001
14.instanceof:var instanceof c,其中c可以是接口,类,或数组,只要var继承或实现或属于了相关的类,接口,数组就返回真,但var一定要是内存中存在的对象,否则返回假。
15.?:运算时会归一精度,int a=5;(a<5)?9.9:9;结果会是9.0
16.StringBuffer和String的不同之处,StringBuffer不能直接赋字符串的值,如StringBuffer=“abcd”是不允许的。
17.断言assert:assert语法,(1)assert exp1;(2)assert exp1:exp2;exp1为逻辑表达式,exp2为一个message。(3)人工抛出一个throw new assertError(),有6种基本类型的参数(无byte,short),object,和无参数的构造方法。启用assert,javac -source1.4 class.java;java -ea class;(对某个包的所有程序启动断言java -ea:package... class,即包名加省略号,如果对某特定类启用断言或禁用断言必须写出类的全名。例如:java -ea:package.ibm... -da:package.ibm.myclass class),assert不适合在具体的功能中使用,例如:assert XXX.remove();是不适当的,因为程序assert可能不会被执行。
18.package:如果在程序定义包,就必须把包内的类文件放在以包名为目录的目录里,例如:package a;public class B{}就必须把B.class文件放在目录a里,如果想在其它不同的包里调用B.class里的内容,就必须首先把a目录的上级目录设为classpath,然后再用import a;或者直接写出全路径调用a.Bs。如果调用文件本身是属于某一个包的,应使用javac -cp 包父目录 类文件,(编译运行方法)javac 包名.类名.java,java 包名.类名
19:数组的声明:String s[]=new String[]{new String("d"),new String("d"),new String("df")}是合法的,如果new String[4]{。。。}是不合法的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值