java基础
辣椒全栈攻城狮
展开
-
Java中的线程池
大家用jdbc操作过数据库应该知道,操作数据库需要和数据库建立连接,拿到连接之后才能操作数据库,用完之后销毁。数据库连接的创建和销毁其实是比较耗时的,真正和业务相关的操作耗时是比较短的。每个数据库操作之前都需要创建连接,为了提升系统性能,后来出现了数据库连接池,系统启动的时候,先创建很多连接放在池子里面,使用的时候,直接从连接池中获取一个,使用完毕之后返回到池子里面,继续给其他需要者使用,这其中就省去创建连接的时间,从而提升了系统整体的性能。原创 2024-10-09 15:48:11 · 374 阅读 · 0 评论 -
线程的基本操作
创建线程的2中方式:继承Thread类;实现Runnable接口启动线程:调用线程的start()方法终止线程:调用线程的stop()方法,方法已过时,建议不要使用线程中断相关的方法:调用线程实例interrupt()方法将中断标志置为true;使用线程实例方法isInterrupted()获取中断标志;调用Thread的静态方法interrupted()获取线程是否被中断,此方法调用之后会清除中断标志(将中断标志置为false了)原创 2024-10-09 15:38:33 · 418 阅读 · 0 评论 -
深入理解进程和线程
先到的人锁上门,后到的人看到上锁,就在门口排队,等锁打开再进去。我们经常使用windows系统,经常会看见.exe后缀的文件,双击这个.exe文件的时候,这个文件中的指令就会被系统加载,那么我们就能得到一个关于这个.exe程序的进程。线程是轻量级的进程,是程序执行的最小单元,使用多线程而不是多进程去进行并发程序的设计,是因为线程间的切换和调度的成本远远小于进程。线程是轻量级的进程,是程序执行的最小单元,使用多线程而不是多进程去进行并发程序的设计,是因为线程间的切换和调度的成本远远小于进程。原创 2024-10-09 15:28:53 · 440 阅读 · 0 评论 -
Java并发编程
显式获取和释放锁可响应中断、可轮回,为处理锁提供了更多的灵活性。volatile 变量具备两种特性:一种是保证该变量对所有线程可见,在一个线程修改了变量的值后,新的值对于其他线程是可以立即获取的;Semaphore 指信号量,用于控制同时访问某些资源的线程个数,具体做法为通过调用 acquire()获取一个许可,如果没有许可,则等待,在许可使用完毕后通过 release()释放该许可,以便其他线程使用。可重入锁也叫作递归锁,指在同一线程中,在外层函数获取到该锁之后,内层的递归函数仍然可以继续获取该锁。原创 2024-10-09 14:09:51 · 420 阅读 · 0 评论 -
Java基础
所以每次加锁操作锁住的是一个Segment,保证了每个Segment安全,就实现了整个ConcurrentHashMap的安全。当链表中的元素超过8个以后,会将链表转化为红黑树调高查询效率,时间复杂度为O(logN)。HashMap子类,内部使用链表保存元素插入顺序,当通过Iterator遍历时,会按照元素插入顺序访问。运行类型指为对象赋值的类型。一个被@Inherited修饰的注解修饰一个类,表明这个注解将对该类的子类生效。先判断对象散列值是否相等,相等再通过equals比较,也相等,就视作同一元素。原创 2024-10-09 14:08:46 · 264 阅读 · 0 评论 -
Java底层-JVM
JVM概念原创 2024-10-09 14:04:22 · 601 阅读 · 0 评论 -
java.IO层次体系结构
/*在整个Java.io包中最重要的就是5个类和一个接口。 5个类指的是File、OutputStream、InputStream、Writer、Reader;一个接口指的是Serializable.*/主要的类如下: 1. File(文件特征与管理):用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件,判断文件所在路径等。 2. InputStream(二进制格式操作):抽象类,基于字节的输入操作,是所有 [字节] 输入流的父类。定义了所有 [字节] ...原创 2022-04-25 21:59:02 · 14 阅读 · 0 评论