![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVASE
远风_
一个正在努力的学习者。
展开
-
关于重载(overload)与重写(override)的区别
重载就是同样的一个方法,能够根据输入数据的不同,做出不同的处理。重写就是当子类继承父类的相同方法时,输入数据一样,但是要做出有区别于父类的响应时,你就要覆盖父类方法。重载:发生在同一个类中,方法名字必须相同,参数类型不同、顺序不同,方法返回值和访问修饰符可以不同。(注:不能有两个名字相同、参数类型也相同但是却返回不同类型的方法) 总而言之,重载就是同一个类中多个同名方法根据不同的传参来进行不同的逻辑处理。重写: 重写发生在运行时,是子类...原创 2021-08-16 11:35:48 · 117 阅读 · 0 评论 -
HashMap的底层实现原理
先以jdk7为例去说明,HashMap map = new HashMap():在实例化以后,底层创建了长度是16的一维数组Entry[] table。原创 2021-06-04 18:44:50 · 189 阅读 · 0 评论 -
关于String,StringBuffer,StringBuilder三者的异同?
String、StringBuffer、StringBuilder三者的异同?String:不可变的字符序列;底层用Char[]进行存储StringBuffer:可变的字符序列;线程安全的,效率低;底层用Char[]进行存储StringBuilder:可变的字符序列;jdk5.0新增的,线程不安全的,效率高;底层用Char[]进行存储可变的字符序列的体现:@Test public void test1(){ StringBuffer sb1 = new St原创 2021-05-24 22:32:45 · 121 阅读 · 0 评论 -
关于解决线程安全的三个方法
解决线程安全问题的三个方法以及关于此处的面试题:方式一:同步代码块synchronized(同步监视器){ //需要被同步的代码 }代码举例:class NewWindow implements Runnable { public int ticket = 100; Object o1 = new Object(); @Override public void run() { while (true) {原创 2021-05-18 18:41:11 · 209 阅读 · 0 评论 -
创建多线程的四种方式
在这里讲述创建多线程的四种方式以及各自的好处方式一:继承Thread类1.定义子类继承Thread类。2.子类中重写Thread类中的run方法。3.创建Thread子类对象,即创建了线程对象。4.调用线程对象start方法:启动线程,调用run方法//1.定义子类继承Thread类class HThread extends Thread { //2.子类中重写Thread类中的run方法。 @Override public void run() { .原创 2021-05-18 12:52:25 · 505 阅读 · 0 评论 -
关于生产者消费者问题的解决
问题描述:生产者(Productor)将产品交给店员(Clerk),而消费者(Customer)从店员处取走产品,店员一次只能持有固定数量的产品(比如:20),如果生产者试图生产更多的产品,店员会叫生产者停一下,如果店中有空位放产品了再通知生产者继续生产;如果店中没有产品了,店员会告诉消费者等一下,如果店中有产品了再通知消费者来取走产品。问题分析:1.是否是多线程问题? 是,生产者线程,消费者线程2.是否有共享数据? 是,店员(或产品)3.如何解决线程的安全问题?同步机制,有三种方法..原创 2021-05-18 11:32:56 · 93 阅读 · 0 评论 -
JAVA设计模式之单例模式
第一次写博客,本博客的主要目的是作为笔记,方便自己的日后查阅,如果有不妥之处请多多指正~~ 单例模式是一种常见的设计模式,因为自己是初学者,所以只写最简单的饿汉式与懒汉式!一、懒汉式:class Bank { private Bank() { } private static Bank instance = null; public static Bank getInstance() { if (instance =...原创 2021-05-17 11:29:33 · 174 阅读 · 3 评论