您的位置:首页 > 编程语言 > Java开发

java一些基础知识点

2017-02-14 13:21 495 查看
1、使用Character类的isJavaIdentiferStart和isJavaIdentifePart可以检测哪些Unicode字符属于Java中的字母。

2、>>>运算符将用0填充高位,>>用符号填充高位,没有<<<.

3、 在Math类中,为了达到最快的性能,所有的方法都使用计算机浮点单元中的历程。如果得到一个完全可预测的结果比运行速度更重要的话,就应该使用StrictMath类。它使用“自由发布的Math库”(fdlibm)实现算法,以去报在所有平台上得到相同的结果

4、数值类型的转换: byte ->short ->int->long、char->int、int->double 是无信息丢失的转换并且是自动转换,其他的转换都是强制类型转换,会丢失数据。如果两个数运算,有一个是浮点数,那么另一个数也将被转换成浮点数。

5、java中的String类对象是不可变字符串,它不能修改java字符串中的字符,但是编译器却可以让字符串共享。只可以可以修改字符串变量。如下所示,不能修改"help"但是可以使greep指向另一个字符串。

greep = "help", greep = greep.substring(0,3) +"p!";

java中的字符串共享来了的高效,远远大于提取、拼接字符串带来的低效

== 只能判断两个字符串在同一个位置上,但是却不能保证其内容是一样的只能用equals()来判断字符串的相等。

6、StringBuilder的前身是StringBuffer。如果所有的字符串都在一个单线程中编辑则采用StringBuilder比较好,如果是多线程的编辑,则采用StringBuffer比较好。StringBuilder是线程非安全的,而StringBuffer:线程安全的。

    当我们在字符串缓冲区被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。

7、java从控制台获得密码信息时可以采用Console类实现,这样保证输入不可见。例: Console cons = System.console(); char[] pw = cons.readPassword();为了安全起见返回的密码一定要放在字符数组中,而不是字符串中。

8、大数值。BigInteger与BigDecimal实现了任意精度的整数浮点数运算。使用valueOf(),将普通的数值转换成大数据类型。大数据不能使用+、-、*、/、只能使用add()、multiply()等。

9、oop面向对象的程序设计。一个对象变量并没有实际包含一个对象,而仅仅是引用一个对象。在java中任何一个对象变量的值都是对存储在另外一个地方的一个对象的引用。

10、类的域变量可以进行默认的初始化,但是成员变量必须显示的进行初始化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: