![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaSE
文章平均质量分 54
CavenWang
人生无处不青山
展开
-
java导出excel文件
Java通过EasyExcel导出excel文件原创 2022-03-02 00:10:35 · 1098 阅读 · 0 评论 -
Java反射机制
Java反射机制1.1概述1.2类加载器1.2.1加载配置文件1.3所有类型的Class对象1.4得到Class的几种方式1.5获取Constructor1.5.1获取class对象 获取一个类的构造方法1.2.2Constructor创建对象1.6获取Method1.6.1通过class对象 获取一个类的方法1.6.2Method 执行方法1.7获取Field1.7.1通过class对象 获取一个类的属性1.7.2Field 属性的对象类型1.8获取注解信息1.8.1获取类/属性/方法的全部注解对象1.8原创 2021-08-11 19:31:19 · 106 阅读 · 0 评论 -
Java中的注解
Java中的注解1.1简介1.2学习重点1.3内置注解1.4元注解1.4.1简介1.4.2有哪些?1.5自定义注解1.5.1注解架构1.5.2定义格式1.5.3注意事项1.5.4案例1.1简介Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。Java 语言中的类、方法、变量、参数和包等都可以被标注。和注释不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内原创 2021-08-11 13:45:32 · 98 阅读 · 0 评论 -
Java中的枚举
Java中的枚举简介定义格式枚举类的主要方法实现接口的枚举类注意事项简介枚举是Java1.5引入的新特性,通过关键字enum来定义枚举类。定义格式权限修饰符 enum 枚举名称 { 实例1,实例2,实例3,... ,实例n ;}例1获取对应属性public enum Level { LOW,MEDIUM,HIGH; public static void main(String[] args) { System.out.println(Le原创 2021-08-11 10:55:40 · 103 阅读 · 0 评论 -
JSON
JSONJSON对象格式格式各语言对比数组格式案例Java与JSONGson将对象转换为JSON字符串将对象转换为JSON字符串FastJson将对象转换为JSON字符串将JSON字符串转换为对象JSON简介: JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式.对象格式一个对象, 由一个大括号表示.括号中 描述对象的属性 . 通过键值对来描述对象的属性(可以理解为, 大括号中, 包含的是一个个的键值对.)格式键与值之间使用冒号原创 2021-08-08 20:29:26 · 77 阅读 · 0 评论 -
XML语言
XML语言XML简介为什么学习XMLXML文件XML语法格式语法案例语法进阶(CDATA)Java解析XML面试题DOM4J解析XML文档对象Document元素对象 Element案例解析本地文件解析网络文件DOM4J-XPATH解析XML路径表达式使用步骤Java生成XML步骤案例XStream的使用步骤案例XML简介可扩展标记语言(eXtensible Markup Language)。特性: 1. xml具有平台无关性, 是一门独立的标记语言. 2. xml具原创 2021-08-08 18:48:53 · 1986 阅读 · 0 评论 -
IDEA单元测试
IDEA单元测试使用步骤1.新建lib文件夹2.将jar文件粘贴到lib文件夹中3.引入jar文件4.新建test文件夹5.将test文件设置为测试文件6.在任意要测试的类里按下shift+ctrl+t 生成测试类7.选择测试的方法和版本8.测试类创建完毕, 编写测试代码9.执行测试观察效果使用步骤 使用idea IDE进行单元测试,首先需要下载junit-jar文件1.新建lib文件夹2.将jar文件粘贴到lib文件夹中3.引入jar文件4.新建test文件夹5.将test文件设原创 2021-08-07 10:51:12 · 2406 阅读 · 0 评论 -
常见的线程池简述
常见的几种线程池缓存线程池定长线程池单线程线程池周期定长线程池缓存线程池缓存线程池(长度无限制)任务加入后执行的流程1.判断线程池是否存在空闲线程2.存在则使用3.不存在,则创建线程,并放入线程池,然后使用。示例代码:public class Demo3 { public static void main(String[] args) throws InterruptedException { ExecutorService service = Executors.原创 2021-08-03 00:16:10 · 108 阅读 · 0 评论 -
带返回值的线程Callable
带返回值的线程CallableRunnable与CallableCallable使用步骤Runnable与Callable的相同点Runnable与Callable的不同点Callable获取返回值Runnable与Callable接口定义Callable接口public interface Callable<V>{ V call() throws Exception;}Runnable接口public interface Runnable { public ab原创 2021-08-02 17:14:40 · 469 阅读 · 0 评论 -
线程安全问题
线程安全问题线程不安全情况买票问题解决方案产生原因同步代码块同步方法显式锁Lock线程不安全情况以买票问题为例买票问题三个线程同时开启模拟三个窗口同时售票public class Demo1 { public static void main(String[] args) { //线程不安全演示 Runnable run = new Ticket(); new Thread(run).start(); new Thread(r原创 2021-08-01 23:16:06 · 188 阅读 · 0 评论 -
Java多线程技术
多线程概述线程与进程进程线程线程调度分时调度抢占式调度同步与异步同步异步并行与并发并发并行线程与进程进程 是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间线程 1.是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换,并发执行. 一个进程最少有一个线程 2.线程实际上是在进程基础之上的进一步划分,一个进程启动之后,里面的若干执行路径又可以划分成若干个线程线程调度分时调度 所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间原创 2021-07-31 22:17:34 · 106 阅读 · 0 评论 -
Java序列化与反序列化
Java中的序列化与反序列化序列化与反序列化什么是序列化和反序列化1.Serializable实现Java序列化案例:Java实现Serializable接口进行序列化案例。编写实体类编写Java对象序列化和反序列化工具类测试对象的序列化和反序列化运行结果部分属性的序列化使用transient修饰符使用static修饰符默认方法writeObject和readObject2.Externalizable实现Java序列化3.Serializable VS Externalizable序列化与反序列化什么原创 2021-07-30 23:59:01 · 442 阅读 · 0 评论 -
TreeSet与Comparable
TreeSet与ComparableTreeSet问题引入Comparable解决方法TreeSetTreeSet是一个有序的集合,它的作用是提供有序的Set集合。 1.TreeSet继承于AbstractSet,并且实现了NavigableSet接口。 2.TreeSet是一个包含有序的且没有重复元素的集合,通过TreeMap实现。TreeSet中含有一个"NavigableMap类型的成员变量"m,而m实际上是"TreeMap的实例"。TreeSet的默认排序方式是自然排序,以如下代码演示原创 2021-07-25 17:07:39 · 214 阅读 · 0 评论 -
Java中的泛型
泛型概述 泛型,即“参数化类型”。就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。使用泛型类//定义一个泛型类public class generic_Paradigm<T> { private T data; public T getData(){ return data; } public void setData(T d原创 2021-07-23 20:58:14 · 97 阅读 · 0 评论 -
用Arrays工具类来实现数组的动态扩容
用Arrays工具类来实现数组的动态扩容用copyOf实现数组动态扩容copyOf()方法效果展示public class Expansion { public static void main(String[] args) { int arr[] = new int[10]; System.out.println(arr.length); arr= Arrays.copyOf(arr,15); System.out.print原创 2021-07-23 01:15:15 · 209 阅读 · 0 评论 -
浅谈Java中try-catch-finally的执行顺序
浅谈Java中try-catch-finally的执行顺序一些结论一些结论1.无论有没有出现异常,只要程序没有终止,finally块中的代码都会执行。public class Try { public static void main(String[] args) { haha(); } public static void haha(){ try { System.out.println("1"原创 2021-07-17 16:43:28 · 224 阅读 · 2 评论 -
Java中arraycopy()的使用说明
Java中arraycopy方法的使用其源码简单解析实例应用其源码public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);简单解析从源码中可知调用arraycopy()方法需要传入五个参数,其分别含原创 2021-07-16 16:36:05 · 2014 阅读 · 1 评论 -
Java中的可变参数
Java中的可变参数应用背景示例代码应用背景那最简单的求两数之和来举例,只求两个数字,我们在方法中只需要定义X和Y即可。public class Count { public static void main(String[] args) { // TODO 自动生成的方法存根 System.out.println(sum(100,200)); } public static int sum(int x,int y) { return x+y; }}那么将两个数原创 2021-07-15 16:43:23 · 70 阅读 · 0 评论 -
接口和抽象类的区别
接口和抽象类的区别1.抽象类要被子类继承,接口要被类实现。 2.接口只能声明抽象方法,抽象类中可以声明抽象方法,也可以写非抽象方法。 3.接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。 4.抽象类使用继承来使用, 无法多继承。 接口使用实现来使用, 可以多实现 5.抽象类中可以包含static方法 ,但是接口中不允许(静态方法不能被子类重写,因此接口中不能声明静态方法) 6.接口不能有构造方法,但是抽象类可以有...原创 2021-07-14 15:30:23 · 174 阅读 · 0 评论 -
Java面试题
Java面试题Java中重写(Override)和重载(Overload)的区别1.发生的位置重载:一个类中重写:子父类中2.参数列表限制重载:必须不同重写:必须相同3.返回值类型重载:与返回值类型无关重写:返回值类型必须一致4.访问权限重载:与访问权限无关重写:子类的方法权限,必须不能小于父类的方法权限。5.异常处理重载:于异常无关重写:异常范围可以更小,但是不能抛出新的异常...原创 2021-07-12 16:47:28 · 65 阅读 · 0 评论 -
权限修饰符 Java
原创 2021-07-11 16:25:59 · 76 阅读 · 0 评论 -
Java中的static是做什么的?
Java中的static是做什么的static是什么概述简单理解static误区static是什么概述static表示“静态”的意思,可以用来修饰成员变量和成员方法(后续还会学习 静态代码块 和 静态内部类)。简单理解被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。并且不会因为对象的多次创建 而在内存中建立多份数据(通过下图的存储结构来理解)话不多说,直接上代码:1.调用非静态方法时public class Task_010201原创 2021-07-11 16:00:41 · 496 阅读 · 0 评论 -
Java实例化对象时数据的存储
Java实例化对象时数据的存储示例代码图解误区示例代码以此代码进行存储过程的演示public class Task_010201_1 { public static void main(String[] args) { // TODO 自动生成的方法存根 Car car = new Car(); car.brand="大众"; car.color="黑色"; car.show(); } }class Car { String brand; String color原创 2021-07-10 14:58:58 · 533 阅读 · 0 评论 -
冒泡排序的延展
冒泡排序的延展冒泡排序延展冒泡排序第一轮可知第一轮过去一定能得到最大值。由此得出n个元素的排序需要比较n-1轮。每一轮的比较次数:即每一轮比较次数=数组长度-轮数主要代码 for (int i = 0; i < array.length-1; i++) { for (int j = 0; j < array.length-i-1; j++) { if(array[j]>array[j+1]) { int temp; temp=array原创 2021-07-06 17:31:40 · 84 阅读 · 0 评论 -
退出多重循环
退出多重循环(给循环命名)在使用单词循环时我们通常用Break来跳出循环。但双层循环嵌套时往往达不到想要的效果。在此之前我自己想到的办法一般是添加布尔值,通过此布尔变量的值来控制实现多次的退出。话不多说,直接上代码public class Xunhuan { public static void main(String[] args) { // TODO 自动生成的方法存根 boolean a = false; for (int i = 0; i < 10; i++) {原创 2021-07-04 12:35:04 · 235 阅读 · 0 评论 -
循环嵌套打印图形
关于循环嵌套打印图形的一些常见案例长方形/正方形三角形直角三角形等腰三角形梯形等腰梯形直角梯形其他复合图形长方形/正方形通过循环嵌套打印长方体或正方体是图形打印中最基础的部分,只需要记住外层循环控制的是行数,内层循环控制的是列数即可。//打印一个六行六列的矩形public class Tuxing { public static void main(String[] args) { //外层for循环控制打印图形行数 for ( int i = 0; i < 6; i++)原创 2021-07-04 11:48:08 · 3279 阅读 · 0 评论 -
Java数据类型简述
Java数据类型数据类型8种基本数据类型引用数据类型标识符定义类型转换自动类型转换强制类型转换常见的定义注意事项float类型数据类型8种基本数据类型整数型(int) 占用内存:4字节 值范围:-2 147 483 648 ~ 2 147 483 647(稍大于 20亿) 默认值:0短整数型(short) 占用内存:2字节 值范围:-32 768 ~32 767 默认值:0长整数型(long) 占用内存:8字节 值范围:-9 22原创 2021-07-02 13:06:07 · 105 阅读 · 0 评论 -
Java入门初步(包含环境配置与eclipse安装)
JVM 屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。原创 2021-07-01 17:50:01 · 170 阅读 · 0 评论