JAVA琐碎笔记

java获取内存使用情况
Runtime.getRuntime().totalMemory()
Runtime.getRuntime().freeMemory()

Random rand=new Random(47);//47指种子,相同的种子产生相同的随机序列,默认种子为当前时间
int i=random.nextInt(100);//100指随机数上限,下限默认为0
Integer.toBinaryString(int i);//把i以二进制形式输出

通过BigDecimal的divide方法进行除法出现无限循环小数时,就会抛异常java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. 例如:1000/12=83.3333... 
解决之道:就是给divide设置精确的小数点divide(xxxxx,2, BigDecimal.ROUND_HALF_EVEN)

计算机语言中,e->exponential:指数。e=10来自FORTRAN语言。自然科学中e=2.17

C语言中不支持方法的重载。面向对象语言支持很大原因是构造函数需要重载。

一个java源文件只能有一个public类。
abstract类可以有函数体作为默认实现;有abstract方法的类必须是abstract类。

StringBuffer,Vector,HashTable是线程安全的,而StringBuilder(jdk1.5),ArrayList,HashMap是线程非安全的

sleep是线程类(Thread)的方法,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,只有针对此对象发出notify方法后才可运行
从前Java允许在一个线程之外把线程挂起,即调用 suspend方法,这样的操作是极不安全的。根据面向对象的思想每个对象必须对自己的行为负责,而对自己的权力进行封装。如果任何外步对象都能使线程被 挂起而阻塞的话,程序往往会出现混乱导致崩溃,所以这样的方法自然是被毙掉了啦。

java中不支持二进制的字面写法,没有0b0110101之类;

+ << ^        3<<2+2相当于3<<(2+2)=48;2^6<<2=2^(6<<2)

C和C++不能返回数组,只能返回指向数组的指针

Arrays.fill( ,)产生测试数据

obj.getClass().isArray()判断一个无名对象是否是数组,Array.getLength(obj)获取一个无名数组的长度
java无析构函数,C#支持析构函数,但一般没意义,由系统调用,程序员不能直接调用

java继承初始化顺序:
1. 父类--静态变量
2. 父类--静态初始化块
3. 子类--静态变量
4. 子类--静态初始化块
5. 父类--变量
6. 父类--初始化块
7. 父类--构造器
8. 子类--变量
9. 子类--初始化块
10. 子类--构造器

java中无名包只能被无名包中的类引用,不能被其他包中的类引用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值