java高级
Ysdo
热爱记录和分享的打工人er
展开
-
JAVA 线程状态
线程的状态即生命周期: 1.新建(NEW):新创建了一个线程对象。 2.可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。 3.运行(RUNNING):可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码。 4....原创 2019-07-07 16:02:29 · 91 阅读 · 0 评论 -
JAVA线程池
原理: 线程池本质就是一个集合(ArrayList,LinkedList<Thread>,HashSet,HashMap),当程序第一次启动时,启动多个线程保存到一个集合中,想要使用线程时从集合中取出来集合,所以一般使用LinkedList集合,当时用完一个线程时需归还到线程池,在JDK1.5之后,java内置了线程池,无需自己创建集合。 合理使用户线程池的好处: 1.降低资源损...原创 2019-07-07 17:13:08 · 121 阅读 · 0 评论 -
JAVA 之 IO
IO流的分类 根据数据流的流向可分为输入流和输出流 输入流 :把数据从磁盘 上读取到 内存 中的流。 输出流 :把数据从 内存 中写出到 磁盘上的流 格局数据的类型分为:字节流和字符流。 字节流 :以字节为单位,读写数据的流。 字符流 :以字符为单位,读写数据的流。 字节输入流 InputStream 字节输出流 OutputStream 字符输入...原创 2019-07-14 11:09:16 · 94 阅读 · 0 评论 -
JAVA 之 File类
java.io.File类 文件和目录名的抽象表示形式 java把电脑中的文件和文件夹封装成一个File类,可以使用File类对文件进行操作 分隔符:(静态方法) File.pathSeparator 路径分隔符 windows下为 “分号 ;” linux下为 “冒号 :” File.Separator 文件分隔符 windows下为“反斜杠 \” li...原创 2019-07-11 12:07:22 · 154 阅读 · 0 评论 -
JAVA 线程同步机制
线程安全问题: 当多个线程共享一批数据时,则会出现线程安全问题,看个demo 三个线程 同时卖100张票,此时运行则会出现线程安全问题,运行结果可能会出现卖重复的张数,或者卖不出现的张数。 public class Runnable2 implements Runnable { private int ticket = 100;//票数 @Override pub...原创 2019-07-06 20:56:05 · 119 阅读 · 0 评论 -
JAVA 之 递归
递归:指在当前方法内调用自己的这种现象。(我调我自己) 递归的分类: 递归分为两种,直接递归和间接递归。 直接递归称为方法自身调用自己。 间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。 注意事项: 1.递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。 2.在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。 3.构造方法,禁止递归 ...原创 2019-07-11 19:05:30 · 188 阅读 · 0 评论 -
volatile关键字是如何保证程序的可见性
volatile被喻为轻量级的"synchronized",虽然一定程度上要比synchronized关键字效率要高,但它也有不足之处,就是不具有互斥性和原子性。 volatile关键字的主要作用就是保证各线程之间的可见性,意思就是在多线程环境下,某个共享变量如果被其中一个线程给修改了,其他线程能够立即知道这个共享变量已经被修改了,当其他线程要读取这个变量的时候,最终会去内存中读取,而不是从自...原创 2019-09-08 16:41:46 · 1622 阅读 · 1 评论