JavaSE重点知识详解(基础学习)
文章平均质量分 75
IO流 集合 多线程 网络编程 反射
家乡的落日
博观约取,厚积薄发。拒绝浮躁,保持谦逊。
展开
-
查看java应用 垃圾回收情况 和 jvm启动参数介绍
JVM参数原创 2023-02-18 22:27:59 · 172 阅读 · 0 评论 -
浅谈Java线程池(Executors四种方法、ThreadPoolExecutor七种参数、四种工作队列、四种拒绝策略、最大线程数的两种定义策略)
内容概述一、Executors四种方法二、ThreadPoolExecutor 七种构造参数、四种工作队列、四种拒绝策略三、最大线程数的两种定义策略线程池的优点1、降低资源消耗2、提高程序运行效率3、方便对线程进行管理(可以控制最大的并发数,且线程可复用)阿里的代码规范:【强制】线程池不允许使用Executors 去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规 则,规避资源耗尽的风险。说明: Executors返回原创 2021-04-18 18:19:11 · 1954 阅读 · 1 评论 -
Java8新特性Stream流
一、创建StreamStream的作用图解流的概念:流是数据渠道、用于操作数据源(集合数组等)所生成的元素序列。集合强调的是数据; 流强调的是计算;注意点:Stream自己不存储数据;Stream不会改变源对象。并且会返回一个持有新结果的Stream;Stream是延迟执行的,即需要该数据时才执行,类似于框架的懒加载机制;Stream操作的三个步骤1、创建Stream一个数据源(集合、数组),获取一个流2、中间操作一个中间操作链,对数据进行处理3、终止操作一个终止操作,执行原创 2020-08-09 22:04:28 · 1000 阅读 · 0 评论 -
Java8新特性 对集合进行特定规则的排序
Java8 对集合进行特定规则的排序 /** * 集合按特定规则排序 */ @Test public void test2() { List<Employee> list = Arrays.asList( new Employee("张三", 13, 5000.00), new Employee("李四", 13, 6000.00), new E原创 2020-08-08 16:03:10 · 1316 阅读 · 0 评论 -
代码+图文详解ThreadLocal
一、ThreadLocal简介和使用1.1、ThreadLocal简介ThreadLocal是一个可以保存当前线程(用户状态(一个用户代表一个线程))私有数据的一种数据存储类。相当于一个储物柜,每个用户有自己的一个储物柜,从自己的储物柜拿出的物品一定是自己保存的,与别人无关。也就达到了隔离的效果,对应于线程的数据隔离。1.2、为什么要使用ThreadLocal?通过下面的代码示例演示为什么要使用ThreadLocal例1 :(传统引用的问题)//消息类class Message{ p原创 2020-06-02 00:23:21 · 609 阅读 · 0 评论 -
线程的运行状态
不管是多线程还是多进程,实际上都不太可能一直占用CPU资源,所有多线程的几种状态一定要掌握。多线程的状态如下图:所有的系统费资源是有限的,不管是多线程还是多进程都必须在执行一段时间后让出资源,交由其他的线程继续执行。1、创建过程:开发者定义好了相应的线程类对象(每一个Thread类的实例都表示一个线程对象);2、就绪状态:多线程的启动依靠的是start()方法,但是一定要记住当调用st...原创 2020-02-02 19:40:45 · 594 阅读 · 1 评论 -
Java多线程的实现方式
一、继承Thread类不作讲解 请看分类JavaSE基础知识关于start()方法:观察start()方法的实现源代码: public synchronized void start() { if (threadStatus != 0) throw new IllegalThreadStateException(); group.add...原创 2020-02-01 23:26:53 · 244 阅读 · 0 评论 -
Java正则表达式
一、正则表达式简介正则表达式属于字符串功能加强,基本上所有的项目开发里面都会有正则表达式的身影。正则在很多底层的设计里面也会被大量采用。( Regular Expressions )最早是在Linux系统上被广泛使用的一-种字符串标准,在JDK1.4的时候才正式被Java所引用,正则表达式的出现是为了解决字符串在进行替换、拆分、匹配等方面的功能而设计出来的。例:判断字符串是否由数字所组成...原创 2020-01-14 17:56:07 · 402 阅读 · 0 评论 -
十七、Java集合工具类Collections(和集合Collection关系不大)
java.util.Collections提供的是一个类集操作的工具类,它可以弥补原始类集设计之中的一些缺陷,提供更加丰富的操作方法。例:利用Collections实现数据的增加public class Demo08 { public static void main(String[] args) { List<String> list = new Ar...原创 2019-12-19 16:28:46 · 324 阅读 · 0 评论 -
十六、Java集合框架之Map集合
1、Map接口简介集合根据数据存储的不同分为两种形式:单值集合、二元偶对象集合,在之前所使用的Collection都属于单值集合。现在所学习的Map属于二元偶对象集合,所谓的二元偶对象指的是存储的数据为“key=value”结构对,在使用的时候可以根据key查询出相应的value的内容。所以Collection和Map存储数据的目的分别为:Collection是为了数据的输出而存储,而Map...原创 2019-12-19 15:54:39 · 433 阅读 · 0 评论 -
十五、Java集合框架之Set接口和集合输出
1、Set 接口1.1、Set接口简介Set 接口与List 接口一样都属于Collection子接口,但是Set接口里面最大特点在于不能够进行重复元素的数据保存。观察Set接口的定义: public interface Set<E> extends Collection <E> 在JDK1.9以前,Set接口并没有对Collection接口的方法进行任何的扩充...原创 2019-12-19 09:15:03 · 821 阅读 · 0 评论 -
十四、Java集合框架之Collection和List接口
前言:在Java之中提供了一套非常完善的动态对象数组的实现机制:Java类集下面详细介绍Java的集合框架一、Collection接口Collection接口是单值集合操作的最大父接口,每一次只向集合之中保存一个对象。此类定义如下:public interface Collection<E> extends Iterable <E>Collection是属于I...原创 2019-12-17 23:00:57 · 439 阅读 · 0 评论 -
十二、JavaIO之(对象序列化)
一、序列化简介对象序列化的核心意义在于将内存中的对象转换为二进制数据流的形式进行处理。所有的对象都是在堆内存空间保存的,并且每一块堆内存空间所保存的全部都是对象拥有的属性内容,但是在很多情况下有可能需要将一个对象直接进行远程传输或者是进行文件的保存。但是需要注意的是,并非所有的类对象都可以被序列化,在Java里面可以被序列化对象所在的类一定要实现java.io.Serializable接口...原创 2019-12-29 21:46:47 · 283 阅读 · 0 评论 -
十一、JavaIO之(System类&BufferedReader&Scanner)
一、System类对IO的支持原创 2019-12-29 20:41:29 · 297 阅读 · 0 评论 -
十、Java IO流之ZIP压缩流
ZIP格式压缩输入/输出流关于ZIP压缩的I/O实现,在Java的内置类中提供了非常好用的相关类,使用java.util.zip包中的ZipOutputStream与ZipInputStream类来实现文件的压缩/解压缩。如要从ZIP压缩管理文件内读取某个文件,要先找到对应该文件的“目录进入点”(从它可知该文件在ZIP文件内的位置),才能读取这个文件的内容。如果要将文件内容写入ZIP文件内,必须...原创 2019-12-11 21:36:34 · 972 阅读 · 2 评论 -
九、Java IO流之打印流
在java.io包里面最为原始的输出支持的操作方法是:OutputStream.write()、Writer.write(),但是这两个操作方法都有问题,功能设计上不足,因为这两个操作只支持字符串或字节数组的输出,但是从实际的开发来讲,输出的操作可能有各种数据类型。现在假设说要求你设计一个类,这个类可以实现各种数据类型的输出。例:最初的设计方案import java.io.*;clas...原创 2019-12-11 21:22:06 · 383 阅读 · 0 评论 -
八、Java IO流 之RandomAccessFile类
RandomAccessFile的功能是可以文件内容的随机访问。现在假设在一个文件里面保存有若干个用户信息(姓名、年龄)但是如果要想实现这样的随机读取,那么就必须有一个重要的前提:所有的数据长度一定要统一。RandomAccessFile 支持有内容的输入与输出两种操作方式。例:实现内容的输出public class TestDemo_08 { public static vo...原创 2019-12-11 20:27:24 · 265 阅读 · 0 评论 -
七、Java IO流 之管道流
管道流的处理和线程有关。管道图解在java.io包里面如果要想实现线程的通讯管道,使用两个类完成:PipedOutputStream、PipedInputStream类的继承关系:public class PipedOutputStream extends OutputStreampublic class PipedInputStream extends InputStream例:...原创 2019-12-11 19:43:28 · 316 阅读 · 0 评论 -
六、Java IO流 之内存操作流
在之前实际上使用的基本上都属于文件流,在用文件流处理的时候操作的终端就是磁盘上的文件内容。文件流在java.io包里面对于内存操作流提供有两类支持:字节内存流:ByteArrayInputStream、ByteArrayOutputStream;字符内存流:CharArrayReader、CharArrayWriter。以字节内存流为例,来观察字节内存流的继承结构以及它提供的构造方法。...原创 2019-12-11 19:18:06 · 406 阅读 · 0 评论 -
五、Java IO流 之了解Java中的字符编码
了解Java中的字符编码字节这种数据类型的最大特点是可以进行编码的,如果要想进行编码的转换那么肯定要依靠的就是字节类型,在实际的项目开发过程里面,对于常见编码有如下几种:GBK/GB2312: 进行中文编码定义,其中GBK包含有简体中文和繁体中文,而GB2312只有简体中文;ISO8859-1:是一个国际通用编码标准,可以描述任何的文字,但是对于图形文字则需要进行转码;UNICODE:是一...原创 2019-12-11 16:32:33 · 349 阅读 · 0 评论 -
四、Java IO流 之文件拷贝案例
在各个操作系统之中实际上都会提供有一个copy命令,copy 源文件路径 目标文件路径。题目:现在要求通过java.io包中采用自定义程序的模式实现该功能,可以通过初始化参数设置拷贝的文件路径。思路分析:1、要进行拷贝的文件可能是文本文件或者是二进制文件,所以所以为了达到通用性,最好的方法是使用字节流访问;2、由于要拷贝的文件有可能很大,那么肯定不能够将源文件全部读取进来后一次性输...原创 2019-12-11 15:44:11 · 507 阅读 · 0 评论 -
三、Java IO流 之转换流
当前已经有了两类数据流:字节流、字符流,可以发现在进行中文操作的时候字符流更加的方便,而且字符流是通过内部的转换得来的, 现在为了方便的实现字节流与字符流的转换处理,提供有两个类:OutputStreamWriter、InputStreamReader观察这两个类的继承结构。OutputStreamWriterpublic class OutputStreamWriter extends ...原创 2019-12-11 10:52:24 · 290 阅读 · 0 评论 -
二、Java IO流 之字节流与字符流
File类实现了文件自身的处理操作,但是并未规定其文件内容的操作,而要想实现文件内容的操作就必须通过流的概念来完成。字节流与字符流简介流(Stream)指的是数据的处理方式,以及目标的内容的处理机制,所有的流都分为输入流和输出流两种。java.io包中 针对于输入流和输出流分为两种类型:字节操作流:OutputStream(字节输出流)、InputStream(字节输入流);字符操作流:...原创 2019-12-11 10:17:26 · 338 阅读 · 0 评论 -
一、Java IO流 之File类
Java IO流 (Input&Output)IO的核心组成分为6个部分一个普通类(File) 、一个接口(Serializable)、四个抽象类(InputStream、OutputStream、Reader、Writer)一、File类File类是在整个java.io包里面唯一一个与文件本身有关的操作类, 与文件本身有关指的是这个类可以进行操作文件的路径指派,可以创建或者删除文...原创 2019-12-10 00:21:50 · 553 阅读 · 0 评论