Java学习
文章平均质量分 77
hf : )
就当做学习笔记吧
展开
-
Java 多线程学习——多线程实现和线程状态转换
概念 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。 (进程是资源分配的最小单位) 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。 (线程是cpu调度的最小单位) 实现多线程常用方式: 1.继承Thread类 2.实现Runable接口(推荐) ...转载 2018-05-10 16:14:58 · 146 阅读 · 0 评论 -
Java 访问控制符private、protected、public和default的区别
原文:http://www.cnblogs.com/jingmengxintang/p/5898900.html public: 具有最大的访问权限,可以访问任何一个在classpath下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。 protected: 主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一...转载 2019-04-09 14:39:33 · 229 阅读 · 0 评论 -
Java 抽象类和接口的区别
很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们将仔细讨论这些话题。 在讨论它们之间的不同点之前,我们先看看抽象类、接口各自的特性。 抽象类 抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。以JDK中的GenericServlet为例: 1 2...转载 2019-03-24 11:37:02 · 138 阅读 · 0 评论 -
Java &&和&的区别
&& 逻辑与,|| 逻辑或 称为逻辑运算符 & 按位与,| 按位或 称为位运算符 if(a==1&&b==2) 这是说既要满足a=1也要满足b=2 if(a==1||b==2) 这是说或者满足a=1或者要满足b=2 而a&b或者a|b则是二进制的与或运算 &同为1时为1,否则为0 |同为0时为0,否则为1...转载 2018-07-07 23:41:56 · 1378 阅读 · 0 评论 -
Java 多线程学习——四种自带线程池的使用
Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。newSingl...转载 2018-05-08 19:56:47 · 154 阅读 · 0 评论 -
Java equals与==区别
http://www.cnblogs.com/dolphin0520/总结来说: 1)对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等; 如果作用于引用类型的变量,则比较的是所指向的对象的地址 2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量 如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址; ...转载 2018-05-13 12:06:28 · 104 阅读 · 0 评论 -
Java 集合类中的常用类
Java中的集合类包含的内容很多而且很重要,很多数据的存储和处理(排序,去重,筛选等)都需要通过集合类来完成。首先java中集合类主要有两大分支:(1)Collection (2)Map先看它们的类图:(1)Collection(2)Map 粗略一看一堆类很吓人,但其实用起来很方便很简单。先看看Collection下的东西:List:1.可以允许重复的对象。2.可以插入多个null元素。3.是一个...转载 2018-05-12 19:35:39 · 9309 阅读 · 0 评论 -
Java 类加载双亲委派模型
使用双亲委派模型的好处在于Java类随着它的类加载器一起具备了一种带有优先级的层次关系。例如类java.lang.Object,它存在在rt.jar中,无论哪一个类加载器要加载这个类,最终都是委派给处于模型最顶端的Bootstrap ClassLoader进行加载,因此Object类在程序的各种类加载器环境中都是同一个类。相反,如果没有双亲委派模型而是由各个类加载器自行加载的话,如果用户编写了一个...转载 2018-05-04 10:28:25 · 183 阅读 · 0 评论 -
Java volatile关键字
首先,我们得知道Java内存模型基于此种内存模型,便产生了多线程编程中的数据“脏读”等问题。举个简单的例子:在java中,执行下面这个语句:1i = 10++;执行线程必须先在自己的工作线程中对变量i所在的缓存行进行赋值操作,然后再写入主存当中。而不是直接将数值10写入主存当中。由于不同线程读写时机先后顺序的不同,可能产生不同的结果。这就是著名的缓存一致性问题。当一个共享变量被volatile修...转载 2018-05-05 14:08:47 · 112 阅读 · 0 评论 -
Java Integer和int的区别
Integer是int的包装类int是Java的基本数据类型原始类型:boolean,char,byte,short,int,long,float,double包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Doubleint的初值为0,Ingeter的初值为nullpublic class TestInteger { publi...转载 2018-05-05 11:17:37 · 109 阅读 · 0 评论 -
Java 多线程学习——结束正在运行的线程
stop( )不安全1. 使用共享变量的方式在这种方式中,之所以引入共享变量,是因为该变量可以被多个执行相同任务的线程用来作为是否中断的信号,通知中断线程的执行。public class ThreadFlag extends Thread { public volatile boolean exit = false; public void run() { ...转载 2018-05-04 10:28:41 · 208 阅读 · 0 评论 -
Java Error和Exception
Error和Exception的联系继承结构:Error和Exception都是继承于Throwable,RuntimeException继承自Exception。Error和RuntimeException及其子类称为未检查异常(Unchecked exception),其它异常成为受检查异常(Checked Exception)。Error和Exception的区别Error类一般是指与虚拟机...转载 2018-05-04 10:34:26 · 129 阅读 · 0 评论 -
Java JMM-JavaMemoryModel
参考:https://blog.csdn.net/bruce128/article/details/79357870转载 2018-05-04 10:35:39 · 211 阅读 · 0 评论 -
Java GC垃圾回收机制
发现无用信息对象算法1.引用计数法优点:实现简单,而且效率较高缺点:无法解决循环引用问题2.可达性分析(根搜索算法,tracing算法)根搜索算法是从离散数学中的图论引入的,程序把所有的引用关系看作一张图,从一个节点GC ROOT开始,寻找对应的引用节点,找到这个节点以后,继续寻找这个节点的引用节点,当所有的引用节点寻找完毕之后,剩余的节点则被认为是没有被引用到的节点,即无用的节点。垃圾收集算法:...转载 2018-05-04 10:40:59 · 116 阅读 · 0 评论 -
Java 多线程学习——生产者消费者简单实现
Storage.java 仓库类package threads; /** * *@author CJY *@date 2018年5月7日 下午2:20:38 * */ import java.util.LinkedList; public class Storage { // 仓库最大存储量 private final int MAX_SIZE = 100; ...原创 2018-05-10 16:43:34 · 203 阅读 · 0 评论 -
Java 单例模式
Java中单例(Singleton)模式是一种广泛使用的设计模式。单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在。一些管理器和控制器常被设计成单例模式。 单例模式有很多好处,它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间;能够避免由于操作多个实例导致的逻辑错误。如果一个对象有可能贯穿整个应用程序,而且起到了全局统一管理...转载 2019-04-21 13:31:18 · 187 阅读 · 0 评论