java基础
Java基础
Willow_zhu
这个作者很懒,什么都没留下…
展开
-
Java语言中StringBuffer扩容问题
public AbstractStringBuilder append(StringBuffer sb) { if (sb == null) return appendNull(); int len = sb.length(); ensureCapacityInternal(count + len); ...原创 2020-04-20 11:45:25 · 1451 阅读 · 2 评论 -
java语言HashMap中的getOrDefault()方法
首先看一下方法的源码 @Override public V getOrDefault(Object key, V defaultValue) { Node<K,V> e; return (e = getNode(hash(key), key)) == null ? defaultValue : e.value; }也就是说,如果...原创 2020-04-16 22:11:50 · 995 阅读 · 0 评论 -
Java语言String、StringBuilder、StringBuffer的区别
StringString声明的是不可变的对象,先看一段代码: String a = "abc"; a = a+"de";第一行代码,首先会在内存分配一块空间存放"abc",并且有一个引用a指向这块内存空间。但是第二行代码,首先会将"abc"和"de"进行计算,存放到另一块内存空间,然后将引用a指向新的内存空间。所谓“不可变”,说的就是之前的内存空间存放的内容并没有发生变化,只是之前...原创 2020-04-10 20:10:24 · 138 阅读 · 0 评论 -
equals() 与 hashcode()的关系
hashcode()hashcode 是通过hash函数得到的,hashcode的值也就是在hash表中的位置。对于每个具体的对象来说,在内存中都是有物理地址的,先将物理地址转换成一个整数,再通过 hash 函数,就得到了hashcode使用hashcode,查找非常方便快捷equals()与hashcode()当对象的hashcode值相同的时候,会用equals()方法来判断...原创 2020-04-10 17:50:30 · 128 阅读 · 0 评论 -
java语言中 == 与 equals() 的区别
==对于基本类型和引用类型,基本类型:比较的是值是否相同引用类型:比较的是引用是否相同,也就是比较的是引用指向的地址值。equals()其实最本质上,equals() 与 == 是一样的,比较的是引用是否相等。只是String类将equals()重写了,才比较的是“内容”。 equals()源码如下:public boolean equals(Object obj) { ...原创 2020-04-10 16:40:56 · 164 阅读 · 0 评论 -
java语言中final关键字的具体用法
final修饰类final 修饰的类,表示该类不能被继承。而且,该类中的方法都会自动地定义为 final,但是属性(变量)不会自动地定义为 final。final修饰方法final 修饰的方法,表示该方法不能被重写。但是有一点,如果该方法被 final 修饰的同时,还被 private 修饰了,在子类中有一个同名的方法,这不是重写,而是在子类中重新定义的一个新方法。final修...原创 2020-03-17 23:23:00 · 304 阅读 · 0 评论 -
Math类中round(), ceil(), floor()方法
1.round()简单讲,四舍五入。但是要注意对于负数的情况Math.round(-5.6) = - 6Math.round(-5.4) = - 5Math.round(5.6) = 6Math.round(5.4) = 52.ceil()3.floor()原创 2020-03-17 11:35:23 · 510 阅读 · 0 评论 -
java语言中switch(x)语句括号中的表达式 x 的类型
今天复习的时候,发现了一个一直忽略的问题,就是java语言中switch(x)语句括号中的表达式 x 的类型可以是哪些呢?现在就来详细记录一下:JDK 1.5以前:x 只能是byte, short, char, intJDK 1.5之后:x 的类型也可以是枚举类型啦!JDK 1.7之后:x 的类型又多了一个String类型~其实,x 准确的说,数值型的只可以是 int 类型,但是 by...原创 2020-03-15 23:07:08 · 3844 阅读 · 0 评论