美文网首页
Java语法笔记

Java语法笔记

作者: 环球探测 | 来源:发表于2016-03-18 15:24 被阅读75次

1. StringBuffer和StringBuilder

StringBuffer 执行效率低,线程安全
StringBuilder效率高,但是非线程安全

2.Math

Math.floor(f) 向下取整
Math.round(f) 四舍五入,实现:加上0.5后向下取整

3.hashCode 和 31

String的hashCode源码:
Java
public int hashCode() {
int h = hash;
if (h == 0 && value. length > 0) {
char val[] = value;

    for ( int i = 0; i < value. length; i++) {  
        h = 31 * h + val[i];  
    }  
    hash = h;  
}  
return h;  

}

其实等价于 ```s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]```    
使用31的原因是它是素数。31可以 由i*31== (i<<5)-1来表示,现在很多虚拟机里面都有将该乘法换成位移计算的相关优化。

##4.反射
在**运行时**状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。
当一个类被加载以后,Java虚拟机就会自动产生一个Class对象。通过这个Class对象我们就能获得加载到虚拟机当中这个Class对象对应的方法、成员以及构造方法的声明和定义等信息。
获取Class对象的三种方式:
1. 通过实例对象的getClass方法获取
2. 通过Class.forName载入类
3. 通过类名的.class属性获取

##5. 数组初始化
```Java```
int[] a = new int[length];
int[] a = {1,3,6};

6. obj.equals() 方法

如果我们的类没有覆盖 equals方法,那么该类实例调用.equals的效果和“==”操作符相同,因为源码如此
Java
//Object类的equals方法
public boolean equals(Object obj) {
return (this == obj);
}

如果想要比较两个对象的内容,要重写equals()方法才可。Java jdk中的容器类和String都已经覆盖了equals方法。

##7.obj.clone()方法
深拷贝与浅拷贝的区别:

![Paste_Image.png](https://img.haomeiwen.com/i1713176/c9ca35587dbef1b0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
Object的clone方法是“浅拷贝”。如果我们要彻底实现深拷贝,必须覆盖clone方法,在其中为我们的新对象的所有引用类型的属性层层赋值,一直到非引用类型为止。

相关文章

  • java学习笔记

    引用地址: Java学习笔记(一):基础概念和语法 - 简书

  • Java语法笔记

    1. StringBuffer和StringBuilder StringBuffer 执行效率低,线程安全Stri...

  • 第一周 初识JVM

    笔记 java相关的规范有两个:java语言规范主要是规定了java语言的语法、变量、类型以及文法。jvm规范主要...

  • 2018-12-04Java第一季

    Java笔记(主要为语法,c/c++相同未写) 学习链接为:Java学习第一季Java学习第二季Java学习第三季...

  • Java Web开发过程

    翻看以前初学Java时的笔记,献给初学者的你: 第一个阶段(java基础阶段) 1.java语法 2.面向对象 3...

  • 【Android】知识点汇总,坚持原创ing

    Android基础 Java基础 Java基础——Java内存模型和垃圾回收机制 语法基础 语法基础——C语法基础...

  • java简单语法笔记

    一、变量 变量不能以数字、下划线、美元符合等其它特殊符号开头,变量名也不能使用下划线 二、java中的数据类型 j...

  • 基本语法

    Groovy学习笔记 网址 1 基本语法 1.1 定义以 def开头 当然也可以用基本Java类型 (int,...

  • 2018-06-25

    《Java从小白到大牛》之第4章 Java语法基础 Java语法基础 本章主要为大家介绍Java的一些基本语法,其...

  • 快速上⼿ Kotlin

    快速上⼿ Kotlin 基础语法 函数基础语法 与 Java 代码互调 Java 与 Kotlin 交互的语法变化...

网友评论

      本文标题:Java语法笔记

      本文链接:https://www.haomeiwen.com/subject/flthlttx.html