JAVA的基础知识
文章平均质量分 96
由浅入深带你详细学习JAVA的基本知识,各种方法案例和源码解读,透彻理解JAVA本质
倾城璧
JAVA是世界上最好的语言.java
展开
-
JAVA中线程池的详解
ThreadPoolExecutor类提供了4种构造方法,可根据需要来自定义一个线程池。原创 2024-09-12 18:13:06 · 1152 阅读 · 0 评论 -
JAVA中有关锁的详解
在Lock接口出现之前,Java程序是靠synchronized关键字实现锁功能的,而JavaSE 5之后,并发包中新增了Lock接口(以及相关实现类)用来实现锁功能,它提供了与synchronized关键字类似的同步功能,只是在使用时需要显式地获取和释放锁。虽然它缺少了(通过synchronized块或者方法)隐式获取释放锁的便捷性,但是却拥有了锁获取与释放的可操作性、可中断的获取锁以及超时获取锁等多种synchronized关键字所不具备的同步特性。原创 2024-08-31 01:26:34 · 351 阅读 · 0 评论 -
JAVA中的Stream流的使用详解
下面我们来举个例子来感受一下Stream有多优雅Stream的类型我们可以对流进行中间操作或者终端操作。小伙伴们可能会疑问?原创 2024-08-23 11:09:43 · 1309 阅读 · 0 评论 -
JAVA中的网络编程巨详解(2w字)
在学习 Java 网络编程之前,我们先来了解什么是计算机网络。计算机网络是指两台或更多的计算机组成的网络,在同一个网络中,任意两台计算机都可以直接通信,因为所有计算机都需要遵循同一种网络协议。下面是一张简化的网络拓扑图。原创 2024-08-18 20:35:52 · 751 阅读 · 0 评论 -
JAVA线程中synchronized的四种锁状态详解
当一个实例方法被声明为synchronize时,锁时当前实例对象(this)。这意味着同一时间只有一个线程可以执行该实例的所有同步实例方法,如果多个线程尝试访问同一个对象的同步实例方法,它们将会被序列化,一个接着一个执行。当一个静态方法被声明为synchronize时,锁时这个类的class类。这意味着同一时间只有一个县城可以执行该类的所有同步静态方法。这与实例方法同步不同,因为他锁定的是类本身而不是类的某个特定的实例。这里介绍一下“临界区”的概念。在上面的例子中,如果。原创 2024-08-12 00:31:20 · 1574 阅读 · 0 评论 -
JAVA中的volatile和synchronized关键字详解
保证可见性:当一个变量被声明为`volatile`,并且每次使用这个变量时都必须从中读取,。这确保了所有线程看到的变量值都是最新的。a=1;b=a;使用 volatile 关键字修饰共享变量可以禁止这种重排序。怎么做到的呢?原创 2024-08-08 23:58:16 · 1385 阅读 · 0 评论 -
JAVA中的JMM(Java 内存模型)详解
因为在不同的硬件生产商和不同的操作系统下,内存的访问有一定的差异,所以会造成相同的代码运行在不同的系统上会出现各种问题。原创 2024-08-05 12:07:02 · 2385 阅读 · 0 评论 -
JAVA线程中的安全性问题详解
在一个单向行驶的道路上,每辆汽车都遵守交通规则,这时候整体通行是正常的。『单向车道』意味着『一个线程』,『多辆车』意味着『多个 job 任务』。如果需要提升车辆的同行效率,一般的做法就是扩展车道,对应程序来说就是『加线程池』,增加线程数。这样在同一时间内,通行的车辆数远远大于单车道。然而车道一旦多起来,『加塞』的场景就会越来越多,出现碰撞后也会影响整条马路的通行效率。这么一对比下来『多车道』就比『单车道』慢多了。防止汽车频繁变道加塞可以在车道间增加『护栏』,那在程序的世界里该怎么做呢?『线程安全问题』原创 2024-08-03 11:32:04 · 1074 阅读 · 0 评论 -
Java线程的(6种状态及切换)以及(线程优先组和优先级)
我们先来看看操作系统中的线程状态转换。在中,线程被视为轻量级的进程,所以。原创 2024-07-31 18:05:38 · 1382 阅读 · 0 评论 -
JAVA中的多线程详解
进程是一个包含自身执行地址的程序,多线程使程序可以同时存在多个执行片段,这些执行片段根据不同的条件和环境同步或者异步工作,在一个进程内部可以执行多项任务,进程内部的任务被称为线程,线程是进程中的实体,一个进程可以拥有多个线程。多线程是指在一个程序中同时执行多个线程,每个线程都有自己独立的执行路径。在多线程中,程序的执行可以同时进行多个任务,从而提高系统的资源利用率和响应性能。在传统的单线程编程模型中,程序按照顺序执行,一次只处理一个任务。这种方式在某些情况下可能会导致效率低下或者无法满足需求。原创 2024-07-29 15:55:07 · 1205 阅读 · 0 评论 -
Java 序列流:Java 对象的序列化和反序列化详解
序列化是指将一个对象转换为一个字节序列(包含对象的数据对象的类型和对象中存储的属性等信息),它可以将多个InputStream对象串联起来,使得它们可以被当作一个单一的输入流来处理,以便在网络上传输或保存到文件中,或者在程序之间传递。在 Java 中,序列化通过实现 java.io.Serializable 接口来实现,只有实现了的对象才能被序列化。原创 2024-07-25 20:00:29 · 1381 阅读 · 0 评论 -
JAVA中的泛型机制详解
擦除方法定义中的类型参数原则和擦除类定义中的类型参数是一样的,这里仅以擦除方法定义中的有限制类型参数为例。如何证明类型擦除呢?return t;this.t = t;//输出结果为123//尽管Box在编译的时候是Integer类型,但是在运行的时候它只是Box//编译的时候就报错了//ture原始类型相等// true在这个例子中,我们定义了两个ArrayList数组,不过一个是泛型类型的,只能存储字符串;一个是。原创 2024-07-25 19:41:05 · 1196 阅读 · 0 评论 -
JAVA IO流中的转换流(字节流和字符流之间的转换)
转换流主要有两类:InputStreamReader和OutputStreamWriter。这两个类都属于字符流。其中InputStreamReader将输入流转为输入流,继承自Reader。OutputStreamWriter是将输出流转为输出流,继承自Writer。原创 2024-07-22 23:49:20 · 1823 阅读 · 0 评论 -
JAVA中的File类,文件流,字节流和字符流超级详解(1.8万字干货 )
File类的常用方法方法。原创 2024-07-19 01:43:38 · 1283 阅读 · 0 评论 -
JAVA IO中的缓冲流,PrintStream类和PrintWriter以及System.in获取用户输入流详解
Java 的缓冲流是对字节流和字符流的一种封装,通过在内存中开辟缓冲区来提高 I/O 操作的效率。Java 通过 BufferedInputStream 和 BufferedOutputStream 来实现字节流的缓冲,通过 BufferedReader 和 BufferedWriter 来实现字符流的缓冲。它们内部维护了一个字节数组缓冲区,当进行读写操作时,先将数据读取到缓冲区或者从缓冲区写入数据,然后再与底层设备进行交互。这种方式减少了与底层设备的直接交互次数,提高了读写的效率。 缓冲流的基本原理:字节原创 2024-07-19 23:46:11 · 1298 阅读 · 0 评论 -
JAVA中的static和内部类超详解
目录1.static的作用为什么要有这个static的修饰呢?静态方法 静态代码块2.内部类的概念1.静态内部类2.匿名内部类实例1:不使用匿名内部类来实现抽象方法实例2:匿名内部类的基本实现实例3:在接口上使用匿名内部类static是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。这样做有什么意义呢?在Java程序里面原创 2024-07-03 12:32:22 · 1651 阅读 · 0 评论 -
JAVA中的Lambda表达式详解
匿名内部类与 Lambda 函数比较。原创 2024-07-02 23:02:21 · 6340 阅读 · 0 评论 -
JAVA中的异常超详解
通常使用java语言内置的异常类就可以描述在编写程序时出现的大部分情况,但是有些时候,程序员需要根据程序设计的需要来创建自己的异常类,用以描述java语言内置异常类所不能描述的一些特殊情况。下面就来介绍如何创建和如何自定义异常。自定义异常类必须继承自Throwable类,才能被视为异常类,通常是继承Throwable的子类Exception或者Exception类的子孙类。下面是一个实例来演示如何创建一个自定义异常类1、创建一个MYException异常类,它必须继承Exception类。原创 2024-07-01 02:39:29 · 1357 阅读 · 0 评论 -
JAVA中的String类和StringBuilder类以及StringBuffer类方法的使用与详解
JAVA中的String类和StringBuilder类以及StringBuffer类方法的使用与详解,String类,StringBuffer类,StringBuilder类总比较原创 2024-06-10 23:32:45 · 1332 阅读 · 0 评论 -
JAVA中的Collection,List,Set,Map集合的使用与万字详解
在JAVA.until包中提供了一些集合,其中List集合的List接口和Set接口实现了Collection接口,这些集合被称为容器。集合和数组不同,数组的长度是固定的,集合的长度是可变的;数组只能存放基本数据类型且只能存储一种类型,集合用来存放类对象的引用并且可以存储同一种类型。该框架必须是高性能的。的实现也必须是高效的。该框架允许不同类型的集合,以类似的方式工作,具有高度的互操作性。对一个集合的扩展和适应必须是简单的。1、List列表:有序的,可重复的;2、Queue队列:有序,可重复的;原创 2024-05-30 16:51:53 · 1368 阅读 · 0 评论
分享