Java
文章平均质量分 91
Java学习
前后相随
传统行业结合互联网创业中
展开
-
Java多线程:wait/notify机制-实现生产者消费者(4)
wait和notify都是Object类里面的方法wait是用来阻塞当前线程,线程调用wait方法后会被阻塞并释放线程持有的锁notify使用来唤醒阻塞的线程,线程调用notify方法后并不会立马释放锁,只有执行完同步方法后才会释放锁。除了wait和notify,还有对应的和notifyAll是阻塞多少时间,notifyAll是唤醒所有阻塞线程。wait(0);回到最开始哪个问题,机制是来干什么的机制是用来通信的,并不是完全贴切,原创 2024-07-17 15:25:19 · 1035 阅读 · 0 评论 -
Java基础(三):Java异常机制以及底层实现原理
除了Java中提供的异常之外,我们也可以自定义一些异常,自定义异常可以自定义运行时异常和非运行时异常两种方式。自定义运行时异常之需要继承这个方法即可,这里我们加了一个构造方法,这样可以创建异常对象时加一些描述异常信息。自定义非运行时异常只需要继承Exception,这里也是加了一个构造方法,描述异常信息。原创 2024-05-07 11:19:24 · 890 阅读 · 2 评论 -
Java基础:枚举(二)
定义枚举类有几个点需要注意1.枚举类的修饰符是enum不是class2.枚举类的变量不需要new来创建3.枚举类必须要所有参数的构造方法,并且构造方法是privateZB(1, "中杯"),DB(2, "大杯"),CDB(3, "超大杯");Enum是Java.lang包下面的一个抽象类,我们自定义的枚举类都会自动的继承这个类。下面一一介绍枚举类的用法,先自定义一个枚举类。ZB(1, "中杯"),DB(2, "大杯"),CDB(3, "超大杯");EnumMap是。原创 2024-01-24 22:51:44 · 902 阅读 · 0 评论 -
位向量的理解
我们先看一个问题,如果我们有一千万个不重复的数,现在要对这一千万个数进行排序。🥇每一个数都用int来表示,然后把一千万数都读到内存中,然后进行排序。🥈首先一个int类型是四个字节,那么一千万个数就是:10000000 * 4B = 39062.5KB = 38M。原创 2024-01-23 22:46:10 · 2138 阅读 · 0 评论 -
Java基础:反射(一)
反射类反射方法反射字段反射注解Java反射原创 2023-11-04 12:51:42 · 118 阅读 · 0 评论 -
Java多线程:线程同步(1)- volatile关键字
可见性就是当一个线程修改了共享变量,其它线程能够立马得知这个修改。原创 2023-05-31 09:26:07 · 332 阅读 · 0 评论 -
Java多线程:线程同步(2)- ThreadLocal理解与分析
因为当被回收了以后Entry的key就会为null,而的set方法会主动的清理一次这样的脏Entry,就算是用户忘了手动remove,这里也多了一次程序自动操作,这样能避免内存溢出。如果设计成强引用,就算是的引用断开了,也会因为Entry的key引用导致堆空间的对象不能被回收,这样加大的内存溢出的概率。原创 2023-04-11 23:40:40 · 627 阅读 · 0 评论 -
Java多线程:线程同步(3)- synchronized关键字
什么是线程同步在多线程环境下,当多个线程操作共享变量时,为了保证数据的准确性,而使用一些措施来保证数据的准确性。主要是解决三个问题:原子性,可见性,有序性。线程同步方法synchronizedvolatileLockThreadLocal阻塞队列原子类什么是线程安全 Java是多线程涉及到多个线程操作共享资源的情况时,处理不好就可能产生线程安全问题。当多个线程共享资源时就会涉及到线程通信问题,线程通信主要的方式时共享内存。 共享内存要关注的三个点:可见性和有序性和原子性。Ja原创 2022-04-19 21:38:01 · 2297 阅读 · 0 评论 -
Java IO流
IO介绍什么是IO流在Java中提供了IO接口,主要用于读写,输入输出操作。IO是以流为基础进行操作的,流相当于是连续的数据流。可以从数据流中读取数据,也可以往流中写数据。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b6gSZPCU-1649497170739)(./pic/iol.png)]IO分类按流向分:输入流和输出流按数据类型分:字节流和字符流按功能类型分:管道流、文件流、数组流、缓冲流、对象流、转换流、基本数据类型流按照角色类型:节点流和处理流原创 2022-04-09 17:44:46 · 478 阅读 · 0 评论 -
Java多线程:线程基础(1)
线程线程和进程进程是操作系统分配资源的最小单位,而线程是程序执行的最小单位,他们都是可以并发执行的。一个进程至少有一个线程,这些线程共享进程的资源空间。线程简介每个线程都有一个优先级,高优先级的线程比低优先级的线程先执行。优先级的取值范围是1到10的整数,默认是5。每个线程有可能被标记为一个守护线程。当一个线程创建另外一个新的线程对象,新的线程的优先级等于创建他的线程的优先级;如果新的线程对象是一个守护线程当且仅当创建他的线程是一个守护线程。线程分类Java线程分为守护线程(Daemon Thr原创 2021-04-08 11:55:11 · 407 阅读 · 0 评论 -
Java Instrument
JVMTI什么是JVMTIJVM Tool Interface简称JVMTI是一组对外接口,通过这组接口可以实现,获取虚拟机运行状态、线程分析、监控、调试、覆盖率分析等功能。JVMTIAgent什么是JVMTIAgent为了使用JVMTI提供的对外接口,一般采用Agent方式来实现JVMTI提供的对外接口,JVMTIAgent类似于c语言的动态库的概念。实现方式在Java1.5之前实现一个Agent只能通过原生的c/c++来实现Agent,在Java1.5之后提供了instrument的age原创 2022-03-07 20:50:43 · 1320 阅读 · 0 评论 -
JDK代理
代理模式代理模式介绍代理模式就是某一个类需要访问一个目标类,不是通过直接访问的方式,而是先访问一个中间类,再由这个中间类去访问目标类。代理模式一般用于保护目标类,或者增强目标类。代理模式类图interface是顶层接口,proxy是代理类,Impl是目标类,client通过访问proxy进而访问到真正的Impl。代理模式的优缺点优点1.代理模式能的能保护目标类的实现细节。2.增强目标对类,可以不修改目标类的情况下在代理类中添加一些其他实现。3.降低了目标类和调用类之间的耦合。缺点原创 2021-10-04 18:05:58 · 331 阅读 · 0 评论