![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 77
Lehends_on_win
gogogo
展开
-
Java线程的状态及主要转化方法
Java线程的状态及主要转化方法操作系统中的线程状态转换在操作系统中,线程是被视为轻量级进程的,所以操作系统的线程状态其实和操作系统进程状态是一致的操作系统线程主要有以下三个状态:就绪状态(ready):线程正在等待使用CPU,经调度程序调用之后可进入running状态执行状态(running):线程正在使用CPU等待状态(waiting):线程经过等待事件的调用或者正在等待其他资源(如I/O)Java线程的6个状态// Thread.State 源码public enum Sta原创 2021-12-05 21:52:58 · 337 阅读 · 0 评论 -
Java多线程入门类和接口
Java多线程入门类和接口Thread常用方法:currentThread():静态方法,返回对当前正在执行的线程对象的引用start():开始执行线程的方法,jvm会调用县城内的run方法yield():当前线程让出对当前处理器的占用,但是要注意的是,就算线程调用了yield,程序在调度时还有可能继续运行这个线程的sleep():使当前线程睡眠一段时间join():是当前线程等待另一个线程执行完毕之后再执行,内部调用的是wait方法实现的Callable,Future与FutureTa原创 2021-12-05 21:49:24 · 416 阅读 · 0 评论 -
Java Introspector(内省)
Java Introspector(内省)什么是内省?Introspector是专门用来处理javaBean的工具类,用来访问某个属性的getter/setter方法JavaBean又是什么呢?JavaBean是一种特殊但又不完全特殊的类,主要用于传递数据信息。类中的方法主要用于访问私有字段,字段具备getter和setter方法如果需要在两个类之间传递信息,可以将信息封装进JavaBean中,这种对象称之为值对象(Value Object)或者是VOJavaBean的信息在Introspect原创 2021-10-27 09:30:00 · 119 阅读 · 0 评论 -
深入解析反射机制
深入解析Java反射什么是反射?反射是允许运行中的Java程序获取自身的信息,并且可以操作类或对象的内部属性在运行时分析类的能力在运行时查看对象实现通用的数组操作代码利用Method对象,这个对象很像cpp中的函数指针反射的主要用途当我们使用idea时,输入一个对象或类向调用它的属性或方法时,编译器会自动列出它的属性或方法,这里就应用了反射反射最重要的应用是开发各种通用框架反射的基本运用获取Class对象使用Class类的forName静态方法public static原创 2021-10-26 21:21:22 · 83 阅读 · 0 评论 -
Java中的锁
Java中的锁Lock接口使用synchronized关键字将会隐式地获取锁,但是它将锁的获取和释放固化了,Lock却拥有锁获取与释放的可操作性,可中断的获取锁以及超时获取锁的便携性队列同步器AQS主要使用方式是继承:子类通过继承同步器并实现它的抽象方法来管理同步状态(getState(),setState()和compareAndSetState)同步器是实现锁的关键,在锁的实现中聚合同步器,利用同步器实现锁的语义。锁是面对使用者的,隐藏了实现细节;同步器面对的是锁的实现者,它简化了锁的实现方式原创 2021-10-10 19:15:25 · 65 阅读 · 0 评论 -
Java并发容器和Java线程池
Java并发容器和Java线程池ConcurrentHashMapConcurrentHashMap是线程安全且高效的HashMap为什么要用ConcurrentHashMap呢?因为在并发编程中使用HashMap可能会导致程序死循环,而使用线程安全的HashTable效率又非常低下HashMap在多线程环境下,因为有并发状况,所以不能使用HashMap。HashMap在并发执行put操作时会引起死循环,这是因为多线程会导致HashMap的Entry链表形成环形数据结构HashTabl原创 2021-10-10 19:14:54 · 140 阅读 · 0 评论 -
Java原子类和JMM
Java原子类和JMMJMMJava线程之间的通信由Java内存模型控制,JMM决定一个线程对共享变量的写入何时对另一个线程可见重排序as-if-serial语义不管怎么重排序,程序的执行结果不能被改变,编译器,runtime和处理器都必须遵守as-if-serial语义JMM的顺序一致性数据竞争和顺序一致性如果一个多线程程序能正确同步,这个程序将是一个没有数据竞争的程序,程序的执行讲具有顺序一致性,即程序的执行结果与该程序在顺序一致性内存模型中的执行结果相同顺序一致性模型有两大特性原创 2021-10-10 19:14:24 · 65 阅读 · 0 评论 -
Java多线程核心技术-单例模式与多线程
立即加载/饿汉模式立即加载是指使用类的时候已经将对象创建完毕,常见的实现方法,是直接用new实例化。立即加载有”着急“”迫切“的意思,所以也称为”饿汉模式“在立即加载中,调用方法前,实例已经被工厂创建了public class MyObject { //立即加载方式 private static MyObject myObject = new MyObject(); private MyObject(){ } public static MyO原创 2021-08-20 01:11:11 · 81 阅读 · 0 评论 -
Java多线程核心技术-volatile和sychronizd关键字
synchronizedsynchronized关键字可以保障原子性,可见性和有序性线程不安全非线程安全问题会在多个线程对同一个对象中的实例变量进行并发访问时发生,产生的后果就是”脏读“,什么是脏读呢?mysql事务中的脏读和这个很类似,读取到的数据是被更改过的。线程安全是指获得实例变量的值是经过同步处理的,不会出现脏读public class safe { public void add(String username){ int num = 0;//方法内 }原创 2021-08-19 21:24:59 · 279 阅读 · 0 评论 -
Java多线程核心技术-基本介绍及常用Api
多线程优点使用单线程会有什么情况出现呢?在同一时间只能执行一个任务,CPU利用率大幅度降低使用多线程可以在同一时间内执行更多不同的项目,系统和CPU的运行效率大大提升。使用多线程就是使用异步。那么什么时候使用多线程呢?出现阻塞,系统中出现阻塞线程,可以使用多线程提高效率依赖,当两个业务的执行不会互相依赖时可以使用多线程提高效率,如果互相依赖则可以不使用多线程,按顺序进行业务的执行使用多线程每当有一个进程正在运行时至少有一个线程在运行例如我们常见的psvmpublic class Tes原创 2021-08-19 15:47:16 · 164 阅读 · 0 评论 -
Java-输入流和输出流
流流的概念:流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。Java的IO流流的分类根据处理数据类型的不同分为:字符流和字节流根据数据流向不同分为:输入流和输出流按照流的角色来分,可以分为节点流和处理流...原创 2021-06-19 15:18:33 · 111 阅读 · 0 评论 -
Java-异常处理
异常机制Java的异常机制主要依赖于try,catch,finally,throw,throws五个关键字,可以让程序具有极好的健壮性。1,try catch捕获异常try{ //业务实现代码}catch (Exception e){ System.out.println("输入不合法"); goto retry}如果业务代码块出现异常,系统会生成一个异常对象,这个过程称为抛出异常。2,异常类的继承机制每个catch块都是专门用于处理该异常类及其子类的异常实例。原创 2021-06-15 23:08:43 · 80 阅读 · 0 评论 -
Java-泛型
事实上并不存在泛型类,因此static和初始化中不允许使用泛型形参原创 2021-06-15 21:45:34 · 1209 阅读 · 3 评论