随笔分类 -  java

1
摘要:Java的引用变量有两个类型,一个是编译时类型,一个是运行时类型,编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。 ——完全听不懂的原则 所谓的编译类型和运行类型这两个概念针对的是对象多态的使用情况。 举个例子: /** * Demo */ public class D 阅读全文
posted @ 2022-07-28 18:11 Kisen 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-06-10 09:12 Kisen 阅读(7) 评论(0) 推荐(0) 编辑
摘要:使用ThreadLocal - 廖雪峰的官方网站 (liaoxuefeng.com) 阅读全文
posted @ 2022-02-27 22:32 Kisen 阅读(11) 评论(0) 推荐(0) 编辑
摘要:首先,由于finalize()方法的调用时机具有不确定性,从一个对象变得不可到达开始,到finalize()方法被执行,所花费的时间这段时间是任意长的。我们并不能依赖finalize()方法能及时的回收占用的资源,可能出现的情况是在我们耗尽资源之前,gc却仍未触发,因而通常的做法是提供显示的clos 阅读全文
posted @ 2022-02-27 21:47 Kisen 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-02-27 21:43 Kisen 阅读(8) 评论(0) 推荐(0) 编辑
摘要:抽象类的定义和使用规则如下: 抽象类和抽象方法都要使用 abstract 关键字声明。 如果一个方法被声明为抽象的,那么这个类也必须声明为抽象的。而一个抽象类中,可以有 0~n 个抽象方法,以及 0~n 个具体方法。 抽象类不能实例化,也就是不能使用 new 关键字创建对象。 阅读全文
posted @ 2022-02-27 21:27 Kisen 阅读(47) 评论(0) 推荐(0) 编辑
摘要:众所周知,JAVA中存在八大基本数据类型以及引用类型,其中引用类型其实就是基本类型的封装和类实例化生成的对象,统称为引用类型。 而引用类型会因GC回收机制,被细分为四种类型。 强引用 顾名思义,GC回收机制面对强引用类型时,即使报错也不会对强引用类型进行回收。 软引用 在内存充足时GC回收机制不会回 阅读全文
posted @ 2022-02-24 19:21 Kisen 阅读(62) 评论(0) 推荐(0) 编辑
摘要:线程睡眠 sleep() 方法 sleep() 允许 指定以毫秒为单位的一段时间作为参数,它使得线程在指定的时间内进入阻塞状态,不能得到CPU 时间,指定的时间一过,线程重新进入可执行状态。 不会开锁,因此一般只会用在暂停行为中。 线程让步 yield() 方法 yield() 使得线程放弃当前分得 阅读全文
posted @ 2022-02-24 19:07 Kisen 阅读(4265) 评论(0) 推荐(0) 编辑
摘要:#{} 为参数占位符 ?,即sql 预编译;{} 为字符串替换,即 sql 拼接 #{} 防止SQL注入;{} 无法防止SQL注入 阅读全文
posted @ 2022-02-24 14:54 Kisen 阅读(44) 评论(0) 推荐(0) 编辑
摘要:1、Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类。但二者都实现了Map接口; 2、hashtable线程安全,而hashmap线程不安全; 3、hash值不同 4、扩容方式不同 阅读全文
posted @ 2022-02-24 14:50 Kisen 阅读(20) 评论(0) 推荐(0) 编辑
摘要:原题地址如下: https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6?tpId=37&tqId=21319&rp=1&ru=/ta/huawei&qru=/ta/huawei&difficulty=2&judgeStat 阅读全文
posted @ 2022-02-23 21:29 Kisen 阅读(309) 评论(0) 推荐(0) 编辑
摘要:初始化时? capacity = length + 16; length > capacity 时? capacity = (length + 1) * 2; length > (length + 1) * 2 时? capacity = length,此外,从此以后capacity只有倍增操作,不 阅读全文
posted @ 2022-02-22 11:03 Kisen 阅读(34) 评论(0) 推荐(0) 编辑
摘要:暴论:java中final作用有三:变量不能改、方法不能被子类改、类不能继承 直接Q.E.D. 阅读全文
posted @ 2022-02-21 22:44 Kisen 阅读(17) 评论(0) 推荐(0) 编辑
摘要:static static修饰符在JAVA中主要作用是用来创建类变量和类方法; final final修饰符在JAVA中主要作用是用来创建常量。 阅读全文
posted @ 2022-02-21 21:44 Kisen 阅读(28) 评论(0) 推荐(0) 编辑
摘要:zsbd JAVA中变量可以从数据类型和OOP使用方式两个维度划分 按数据类型划分? 八大数据类型: byte short int long float double bool char 引用类型 按OOP使用方式划分? 局部变量:变量在类的方法中声明,则此变量为局部变量。局部变量需要在声明时进行初 阅读全文
posted @ 2022-02-21 20:42 Kisen 阅读(46) 评论(0) 推荐(0) 编辑
摘要:整型 int byte long short 浮点型 float double 字符型 char 布尔型 bool 阅读全文
posted @ 2022-02-07 14:48 Kisen 阅读(30) 评论(0) 推荐(0) 编辑
摘要:Mark-Sweep(标记清除) 顾名思义,对垃圾进行标记然后删除。但是由于删除垃圾的原位置无法再添加新数据,会产生碎片化的问题。 Mark-Compact(标记压缩) 顾名思义,是MS算法的优化,在标记并删除垃圾的同时对有用数据重新规划占用的内存空间,使其聚集在内存最前面,规整地利用好空间,进行了 阅读全文
posted @ 2022-01-21 13:47 Kisen 阅读(40) 评论(0) 推荐(0) 编辑
摘要:题目 哲学家就餐问题可以这样表述,假设有五位哲学家围坐在一张圆形餐桌旁,做以下两件事情之一:吃饭,或者思考。吃东西的时候,他们就停止思考,思考的时候也停止吃东西。餐桌中间有一大碗意大利面,每两个哲学家之间有一只餐叉。因为用一只餐叉很难吃到意大利面,所以假设哲学家必须用两只餐叉吃东西。他们只能使用自己 阅读全文
posted @ 2022-01-19 23:29 Kisen 阅读(85) 评论(0) 推荐(0) 编辑
摘要:原子性 即一个或多个操作要么不执行,要么就全部执行完毕,不会被其他因素打断。类似于数据库的事务。 因此可以通过锁、synchronized来确保。volatile是无法保证复合操作的原子性。 可见性 当多个线程共享一个变量时,若其中一个线程改变变量的值,其他线程立即就能够看到,即为可见性。 Java 阅读全文
posted @ 2022-01-19 20:13 Kisen 阅读(173) 评论(0) 推荐(0) 编辑
摘要:问:有何区别? 标答:第一种方法会产生大量中间值(脏数据),原子性完全被破坏,可能导致引用不正确。 第二种方法虽然也会产生中间值,但是只有0一个初始值(脏数据),因此虽然不具有原子性,但是第二种方法仍然比第一种好得多。 阅读全文
posted @ 2022-01-19 19:55 Kisen 阅读(33) 评论(0) 推荐(0) 编辑

1
点击右上角即可分享
微信分享提示