Java
illusory_germ
这个作者很懒,什么都没留下…
展开
-
Java 中的 ==, equals 与 hashCode 的区别与联系
一. 关系操作符 ==:若操作数的类型是基本数据类型,则该关系操作符判断的是左右两边操作数的值是否相等若操作数的类型是引用数据类型,则该关系操作符判断的是左右两边操作数的内存地址是否相同。也就是说,若此时返回true,则该操作符作用的一定是同一个对象。二. equals 方法:Java中所有的类都是继承与Object这个基类的,在Object类中定义了一个equals方法,这个方法的初...原创 2019-10-15 11:24:37 · 288 阅读 · 0 评论 -
Java单例模式——并非看起来那么简单
Java中单例(Singleton)模式是一种广泛使用的设计模式。单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在。一些管理器和控制器常被设计成单例模式。单例模式有很多好处,它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间;能够避免由于操作多个实例导致的逻辑错误。如果一个对象有可能贯穿整个应用程序,而且起到了全局统一管理控制的作用,那么单例模式...转载 2019-09-28 20:18:20 · 118 阅读 · 0 评论 -
HashMap底层实现
1. HashMap概述HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。值得注意的是HashMap不是线程安全的,如果想要线程安全的HashMap,可以通过Collections...原创 2019-09-25 21:20:57 · 157 阅读 · 0 评论 -
进程与线程区别、多线程、run()与start()的区别、wait()和sleep()的区别、
线程与进程的区别:1.线程(Thread)与进程(Process)进程定义的是应用程序与应用程序之间的边界,通常来说一个进程就代表一个与之对应的应用程序。不同的进程之间不能共享代码和数据空间,而同一进程的不同线程可以共享代码和数据空间。进程是资源分配的最小单位,线程是CPU调度的最小单位。2.一个进程可以包括若干个线程,同时创建多个线程来完成某项任务,便是多线程。多进程的应用比如...原创 2019-09-24 10:37:41 · 219 阅读 · 0 评论 -
Java多线程实现的四种方式、线程的生命周期
一. 多线程多线程出现的原因:为了解决负载均衡问题,充分利用CPU资源.为了提高CPU的使用率,采用多线程的方式去同时完成几件事情而不互相干扰.为了处理大量的IO操作时或处理的情况需要花费大量的时间等等,比如:读写文件,视频图像的采集,处理,显示,保存等多线程的好处:使用线程可以把占据时间长的程序中的任务放到后台去处理用户界面更加吸引人,这样比如用户点击了一个按钮去触发某件事件的...原创 2019-09-23 21:22:44 · 431 阅读 · 1 评论 -
多态的实现原理和具体体现
多态的实现原理https://blog.csdn.net/SEU_Calvin/article/details/52191321原创 2019-09-17 21:39:06 · 207 阅读 · 0 评论 -
ArrayList、LinkedList、Vector的区别
List接口实现类有ArrayList,LinkedList,Vector,List是一个有序的可重复的集合ArrayList、Vector和LinkedList类均在java.util包下,均为可伸缩数组,即可以动态改变长度的数组...原创 2019-09-13 21:32:49 · 131 阅读 · 1 评论 -
HashMap、HashTable、LinkedHashMap和TreeMap用法和区别
Java为数据结构中的映射定义了一个接口java.util.Map,它有四个实现类,分别是HashMap、HashTable、LinkedHashMap和TreeMap。本节实例主要介绍这4中实例的用法和区别关键技术剖析:Map用于存储键值对,根据键得到值,因此不允许键重复,值可以重复。(1)HashMap是一个最常用的Map,它根据键的hashCode值存储数据,根据键可以直接获取它的值,...原创 2019-09-02 21:29:02 · 122 阅读 · 1 评论 -
抽象类和接口
什么是抽象类和接口抽象方法 即使用 abstract 关键字修饰,仅有声明没有方法体的方法。public abstract void f(); //没有内容抽象类 即包含抽象方法的类。如果一个类包含一个或者多个抽象方法,该类必须被限定为抽象的。抽象类可以不包含抽象方法。public abstract class BaseActivity { private final S...原创 2019-07-27 15:17:01 · 99 阅读 · 0 评论 -
模拟斗地主,完成洗牌发牌操作
Iterator迭代器Iterator接口在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口java.util.Iterator。Iterator接口也是Java集合中的一员,但它与Collection、Map接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历)Collection中的元素,因此Iter...原创 2019-05-04 21:14:30 · 384 阅读 · 0 评论 -
猜数字游戏(Random、Scanner)、统计字符个数(String)
猜数字游戏Random类此类的实例用于生成伪随机数,例如,一下代码使用户能得到一个随机数 //创建Random对象 Random random = new Random(); //生成一个0-100的数 int a=random.nextInt(100)+1;类java.util.Random:该类需要import导入后,才能使用...原创 2019-05-04 20:44:27 · 393 阅读 · 0 评论 -
冒泡排序(Java)
冒泡排序原理第一步,从第一个元素开始,将相邻的两个元素依次进行比较,直到最后两个元素完成比较。如果前一个元素比后一个元素大,则交换他们的位置。整个过程完成后,数组中最后一个元素自然就是最大值,这样也就完成了第一轮比较。第二步,除了最后一个元素,将剩余的元素继续进行两两比较,过程与第一步相似,这样就可以将数组中第二大的数放在倒数第二个位置。第三步,以此类推,持续对越来越少的元素重复上面的步骤,...原创 2019-05-04 17:26:06 · 190 阅读 · 0 评论 -
for循环练习(9*9乘法表、正三角形、菱形)
#打印9*9乘法表public class demo02 { public static void main(String[] args) { //外层循环 9层 for(int i=1;i<=9;i++){ //内层循环 从1开始做乘法,直到自己本身 for (int j=1;j<=i;j++...原创 2019-05-04 16:05:58 · 675 阅读 · 0 评论