随笔分类 -  Java

Java
摘要:今天面试的时候,被问到了synchronized与lock的详细区别,感觉答的不太好。下午搜了一些资料,对synchronized与lock也有了一个重新的认识 两者区别: 首先,synchronized是一个Java内置的关键字,在JVM层面,lock是个Java类,是一个API synchron 阅读全文
posted @ 2020-03-19 15:55 何浩源 阅读(590) 评论(0) 推荐(0)
摘要:主营业务接口: public interface IUserManger { public void AddUser(String UserName, String Password); public void ModifyUser(int id, String UserName, String P 阅读全文
posted @ 2020-03-17 15:49 何浩源 阅读(198) 评论(0) 推荐(0)
摘要:装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例 为什么要有连接池 数据库的连接对象创建工作,比较消耗性能。 如何创建简单的连接池 在内存中开辟一块空间(集合),一开先往池子里面放置 多个连接对象。 后面需要连接的话,直接从池 阅读全文
posted @ 2020-03-17 11:31 何浩源 阅读(277) 评论(0) 推荐(0)
摘要:import java.io.IOException; public class ExceptionTryCatchTest { public void doSomething() throws IOException{ System.out.println("do somthing"); } pu 阅读全文
posted @ 2020-03-16 19:11 何浩源 阅读(1901) 评论(0) 推荐(0)
摘要:如果一个线程组里,能保证每个线程都能拿到锁,那么这个锁就是公平锁。相反,如果保证不了每个线程都能拿到锁,也就是存在有线程饿死,那么这个锁就是非公平锁 公平锁内部维护了一个FIFO队列,按照先入先出的顺序获得锁,而非公平锁存在抢占锁的现象 在公平的锁中,如果有另一个线程持有锁或者有其他线程在等待队列中 阅读全文
posted @ 2020-03-15 16:52 何浩源 阅读(290) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/qq_43508801/article/details/96514788 总的来说分为两种情况: 1.基本数据类型:finally中有return,那么try和catch语句中的return会失效,返回finally中的return的值;若finally中 阅读全文
posted @ 2020-03-15 14:14 何浩源 阅读(175) 评论(0) 推荐(0)
摘要:Integer.parseInt(s)和Integer.valueOf(s)之间的区别前言今天再看Integer源码的时候,发现了一个问题, Integer.parseInt(s)和Integer.valueOf(s)都可以将字符串解析成int类型。那为啥要提供两个不同的方法了,于是去看了一下他们两 阅读全文
posted @ 2020-03-03 18:58 何浩源 阅读(632) 评论(0) 推荐(0)
摘要:成员内部类: 成员内部类没有用static修饰且定义在外层类的类体中。下面程序在OuterClass类中定义了一个成员内部类Inne class OuterClass{ //外层类 class OuterClass{ //外层类 private int x = 200; private void p 阅读全文
posted @ 2020-02-18 17:55 何浩源 阅读(550) 评论(0) 推荐(0)
摘要:class Main { public static void main(String[] args) { for (int i = 0; i < 3; i++) { Thread thread = new Thread(){ @Override public void run(){ for (in 阅读全文
posted @ 2020-02-18 16:23 何浩源 阅读(1639) 评论(0) 推荐(0)
摘要:抽象类无法被实例化 抽象方法必须在抽象类里存在,但抽象类不一定要有抽象方法,如果一个类中包含一个抽象方法,那么该类会变为抽象类,抽象方法没有方法体 如果一个类继承一个抽象类,那么就必须重写父类抽象类中的所有抽象方法,即使方法体内为空也可以,但必须含有方法体 抽象类不能用final修饰,抽象类是被用于 阅读全文
posted @ 2020-02-18 08:54 何浩源 阅读(175) 评论(0) 推荐(0)
摘要:在java中强引用对象若不置为null,可能会导致无法被回收,造成内存泄露,怎么查询呢? 在cmd命令下,输入:jps,会显示当前进程号,输入:jmap -histo:live 进程号 > e:log.txt 会将文件存储到指定磁盘下,再输入:e: , start log.txt ,用notepad 阅读全文
posted @ 2020-02-09 14:19 何浩源 阅读(442) 评论(0) 推荐(0)
摘要:原创:https://mp.weixin.qq.com/s?__biz=MzI4NDY5Mjc1Mg==&mid=2247484038&idx=1&sn=e083cc8b248461c8916a819119b059c3&chksm=ebf6daf9dc8153ef27ecd857e6cc853727 阅读全文
posted @ 2019-10-16 13:19 何浩源 阅读(523) 评论(0) 推荐(0)
摘要:在jdk8之前,interface之中可以定义变量和方法,变量必须是public、static、final的,方法必须是public、abstract的。由于这些修饰符都是默认的以下写法等价 JDK8及以后,允许我们在接口中定义static方法和default方法。 由于java支持一个实现类可以实 阅读全文
posted @ 2019-09-29 19:36 何浩源 阅读(1846) 评论(0) 推荐(1)
摘要:多线程下的懒汉单例模式(加synchronized关键字) 效率低,调用getInstance的方法时都需要同步 优化1 如果没有该实例,只需要在创建该实例的代码上添加synchronized代码块即可,若该实例已经存在,直接return该实例即可。 但是该种方式根本不能起到线程同步的作用,因为由于 阅读全文
posted @ 2019-08-29 15:21 何浩源 阅读(220) 评论(0) 推荐(0)
摘要:三种实例化对象: 反射获得Date构造方法: 反射获得指定参数构造方法 此类操作的好处是:不再局限于某一具体类型的对象,而是可以通过Object类型进行所有类的方法调用 自定义类加载器cls.getClassLoader() = AppClassLoader(应用程序类加载器)cls.getClas 阅读全文
posted @ 2019-08-25 21:50 何浩源 阅读(231) 评论(0) 推荐(0)
摘要:类加载机制:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 类加载时机:类的生命周期是从类被加载到虚拟机内存中,到卸载内存为止。 类的生命周期:加载 loading > 连接(验证 verification 准备 pr 阅读全文
posted @ 2019-08-24 01:45 何浩源 阅读(260) 评论(0) 推荐(0)
摘要:感谢这两位博主的文章,文章源于: https://www.cnblogs.com/chenpi/p/5375805.html https://blog.csdn.net/fanrenxiang/article/details/80623884 版本:dk1.5后提供了,java.util.concu 阅读全文
posted @ 2019-08-23 17:54 何浩源 阅读(2534) 评论(0) 推荐(0)
摘要:Queue接口: 总结 1. queue的增加元素方法add和offer的区别在于,add方法在队列满的情况下将选择抛异常的方法来表示队列已经满了,而offer方法通过返回false表示队列已经满了;在有限队列的情况,使用offer方法优于add方法; 2. remove方法和poll方法都是删除队 阅读全文
posted @ 2019-08-22 02:29 何浩源 阅读(10015) 评论(3) 推荐(0)
摘要:手工创建一个线程池,执行callable任务 执行结果: 阅读全文
posted @ 2019-08-21 20:13 何浩源 阅读(444) 评论(0) 推荐(0)
摘要:生产者消费者模型是什么生产者和消费者彼此之间不直接通讯,而是通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取。阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。 这个阻塞队列就是用来给生产者和消费者解耦的。 阅读全文
posted @ 2019-08-21 13:24 何浩源 阅读(772) 评论(0) 推荐(0)

//一下两个链接最好自己保存下来,再上传到自己的博客园的“文件”选项中