
Java基础
文章平均质量分 56
思澈
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
接口和抽象类的区别?
首先,什么是抽象类?特点:abstract修饰类,不能被实例化有两种情况用到1.有一个及以上的抽象方法,(编译器会强制用abstract关键字限制这个类),其子类需要实现所有的抽象方法,才可被实例化,否则仍然是一个抽象类2.没有抽象方法,且该类不想被实例化。那接口呢?特点:所有方法都是抽象方法,所有成员变量都默认是 static final的,不可实例化,方法默认是public的接口可以被看为是一...原创 2018-04-30 17:50:21 · 109 阅读 · 0 评论 -
java中两种线程的创建方式区别
要说Java中的线程使用,有两种方式,一个是继承Thread类,直接调用子类的run()方法,另一个是产生一个实现Runnable接口的类,做为Thread类的直接创建入参,启动均调用start方法,前者会直接调用子类的run()实现逻辑,后者则是通过Thread中的run方法去调用Runnable中run()的实现。...原创 2018-06-08 11:45:02 · 1083 阅读 · 2 评论 -
大意失荆州,说说单例模式
标题为啥这么说,是因为我面试中两次被问到单例模式,都没回答好。首先想个问题,什么是单例模式,有什么用?单例模式指一个类只有一个实例,且必须自己创建这个实例,向系统中的所有其他对象提供这一实例好处:只有一个实例,一个是可以统一控制,另外也可以节约资源用处:1.网站的计数器2.日志3.数据库连接池4.线程池那如何实现单例模式呢?1.静态内部类实现public class singleton{ ...原创 2018-04-29 21:38:27 · 177 阅读 · 0 评论 -
ThreadLocal解析一二
ThreadLocal ThreadLocal是啥?首先来看看j d k中的定义Each thread holds an implicit reference to its copy of a thread-local* variable as long as the thread is alive and the {@code ThreadLocal}* instance is acces...原创 2018-04-29 21:03:39 · 139 阅读 · 0 评论 -
我眼中的线程封闭
什么是线程封闭?线程不安全是因为多线程在访问共享的可变数据时,会发生数据的不一致,结果不正确,那怎么解决这个问题呢,一个是使用同步,另外,如果只有一个线程访问这个数据,就不会出现问题,所以线程封闭的解决思想就是以某种方式实现单线程访问共享数据。线程封闭有哪些实现方式?1.使用单线程。曲折的可以这么说。2.多线程环境下,如果能保证通过某种方式访问共享变量的时候是单线程的,也可以实现。3.Ad-hoc...原创 2018-05-20 16:15:36 · 379 阅读 · 0 评论 -
java内存模型
带着问题来学习Java内存模型1.什么是Java内存模型2.哪些部分是编译时就初始化的。我们常说的堆、栈、本地方法栈、程序计数器、方法区,是指Java运行时数据区下面来一一说一下:程序计数器:当前线程执行的字节码的行号指示器,通过改变这个计数器的值实现,分支,循环,跳转,异常处理,线程恢复每个线程都有独立的这个一块内存,不会出现OOM虚拟机栈:线程私有,生命周期同线程描述方法执行的内存模型每个方法...原创 2018-05-06 20:33:25 · 127 阅读 · 0 评论 -
java中从Integer和int对比,你知道了什么?
今天遇到了这样一个面试题题设:Integer a = new Integer(100); Integer b = new Integer(100);Integer c = 100;Integer d = 100; int e = 100; Integer f = 150; Integer g = 150;问题: a == b false; a == c false; c == d...原创 2018-04-27 22:08:25 · 194 阅读 · 0 评论 -
Java对象是如恨被创建的
一: A a = new A(); 当执行上面这样一个创建对象的语句时,虚拟机都会做什么呢?1.检查参数A是否能在常量池中定位到一个类的符号引用。2.检查这个符合引用代表的类是否已被加载、解析和初始化过。3.否则,先执行相应的类加载过程。4虚拟机为新生对象分配内存,那么就有个问题,在Java堆中,怎么划分内存呢? a:指针碰撞,假设Java堆中内存是绝对规整...原创 2018-05-09 20:04:07 · 146 阅读 · 0 评论 -
Java异常机制解析
一 什么是Java的异常?当程序发生错误,没有按照正常的流程运行时,就是异常,所以异常的问题也就是程序出错了,怎么办?那么Java中专门有异常处理机制,将封装的异常类型来代表错误,并且使用 try{//这里是错误情况发生地 }catch(XXXException e){//多个catch块捕捉对应类型的异常,并在这里做处理,比如//throw 一个新的异常//打印异常堆栈信息,打印日志//做相应的...原创 2018-05-01 17:45:55 · 184 阅读 · 0 评论 -
线程的属性
线程中定义了一些属性,其中有以下四个给的编号(ID):long,标识不同的线程。名称(name):有默认值,但可以设置,主要是给人看的,用于调试和定位问题是否是守护线程(Daemon):是否为守护线程,这个属性的默认值和相应线程的父线程的该属性值相同,setDaemon()只能在start前调用。守护线程通常用于执行一些重要性不是很高的任务,相比于非守护线程(用户线程),他不会影响到虚拟机的停止,...原创 2018-06-08 16:02:58 · 490 阅读 · 0 评论