- 博客(24)
- 收藏
- 关注
原创 JavaSE-多线程(二)
JavaSE-多线程(二)线程控制get/setPriority() 优先级别设置join() 插入线程sleep() 阻塞线程yield() 线程就绪(唤醒)setDaemon() 伴随线程stop() 停止线程多线程如何安全?虚拟机级别加锁方式一:synchronized(排它锁)synchronized锁重入synchronized 底层、锁升级Monitor(管程)API 级别加锁方式二:LockReentrantLock(可重入锁)扩展Sync(FairSync公平锁、NonFairSync非公平
2022-05-31 23:09:35
459
原创 JavaSE-多线程(一)
JavaSE-多线程(一)多线程创建线程继承Thread 类创建线程实现Runnable接口创建线程使用lambda表达式实现Callable接口创建线程多线程不安全对高并发的理解线程的调度与生命周期并发编程三大核心问题?原子性可见性有序性多线程基本概念什么是程序编写的代码就是程序什么是进程程序一旦运行起来,就要在内存中分配空间,产生一个进程。是系统资源分配的单位。任务管理器中可以查看进程。什么是线程进程中相对独立的执行单元,线程启动顺序具有不确定性。是CPU 执行调度的单位
2022-05-31 23:07:09
333
原创 JavaSE-集合(Map)
JavaSE-集合(Map)MapHashMap 实现类Hashtable 实现类LinkedHashMap 实现类TreeMap 实现类ConcurrentHashMap实现类Map特点:key 唯一,无序基本APIimport java.util.Collection;import java.util.HashMap;import java.util.Map;import java.util.Set;public class MyMap { public static voi
2022-05-31 23:06:38
252
原创 JavaSE-集合(Set)
JavaSE-集合(Set)SetHashSet 实现类LinkHashSetTreeSetSet基本APIpublic class Demo6 { public static void main(String[] args) { /** * API * 增加: add() addAll() * 删除: clear() remove() removeAll() * 修改: * 查询:
2022-05-31 23:06:19
160
原创 JavaSE-集合(List)
JavaSE-集合(List)CollectionList接口ArrayList 实现类Vector 实现类泛型扩展返回泛型类型的值LinkedList 实现类Collection集合与数组的区别数组只能放一种数据类型,可以是基本数据类型也可以是引用数据类型。集合可以放多种数据类型,但是一般使用泛型,让他只能放置一种数据类型就是【引用数据类型】或者叫【包装类】。所以集合是能放基本数据类型的,但是需要对数据进行自动装箱。为什么要使用集合传统使用数组对数据进行储存,但是一旦添加或者删
2022-05-27 00:25:27
619
原创 JavaSE-数据结构
JavaSE-数据结构数据结构1. 什么是数据结构2. 数据结构的分类3. 逻辑结构4. 物理结构(存储结构)5. 逻辑结构对应的存储结构实现6. 线性表逻辑结构物理结构顺序表链表7. 栈和队列8. 树树的基本概念二叉树9. 图数据结构1. 什么是数据结构数据结构含义数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,进行选择的数据结构可以带来更加高效的运行或储存效率。数据结构往往同高效的检索算法和索引技术有关。简单来说就是在程序设定中,为了方便,把数据按照某种形式组织起来,
2022-05-27 00:25:10
336
原创 JVM-参数
https://blog.csdn.net/fantasyagain/article/details/43017637行为参数:选项和默认值值描述-XX:-AllowUserSignalHandlers允许用户在应用中捕捉信号 (只和Solaris和Linux有关)-XX:AltStackSize=16384备用信号栈大小 (Kbytes)。(只Solaris,从5.0删除)-XX:-DisableExplicitGC禁止调用System.gc(), JVM 依然在
2022-05-27 00:24:56
54
原创 JVM-GC 垃圾回收机制
什么是垃圾回收机制(GC)因为内存空间有限,创建的每个对象和变量都会占据内存,GC做的就是对象清除将内存释放出来。GC 作用位置堆是Java虚拟机进行垃圾回收的主要场所,其次要场所是方法区。JVM 如何判断一个对象是否应该被回收?判断一个对象是否应该被回收,主要是看其是否还有引用。判断对象是否存在引用关系的方法包括引用计数法以及可达性分析。引用计数法:是一种比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只需要收集计数为0的对象。此.
2022-05-27 00:24:46
342
原创 JVM-类加载机制
这里写目录标题一、 加载Class(类)1. 加载路径2. 类加载器加载3. JVM 的类加载机制拓展:双亲委派机制即把请求交由父类处理,它是一种任务委派模式4. 类的加载二、 类的生命周期加载连接初始化、使用卸载一、 加载Class(类)1. 加载路径本地系统中直接加载 rt.jar通过网络下载class 文件从zip,jar等归档文件中加载class 文件(rt.jar、src.zip)从专有数据库中提取class 文件将java 源文件动态编译为class 文件
2022-05-27 00:24:32
66
原创 JVM-内存结构
堆:线程共享。所有的对象实例以及数组都要在堆上分配。回收器主要管理的对象。堆结构:存放数据:对象实例,数组。控制参数:参数描述-Xms堆内存初始大小-Xmx(MaxHeapSize)堆内存最大允许大小,一般不要大于物理内存的80%-XX:NewSize(-Xns)年轻代内存初始大小-XX:MaxNewSize(-Xmn)年轻代内存最大允许大小,也可以缩写-XX:NewRatio新生代和老年代的比值,值为4 表示 新生代:老年代=..
2022-05-27 00:24:20
58
原创 JavaSE-常用类、Stream 流式计算
JavaSE-常用类、Stream 流式计算常用类内置包装类IntegerString类型转换StringBuilder(JDK1.5)StringBuffer(JDK1.0)Date(JDK1.0)拓展:System.currentTimeMillsDateFormatCalendar(JDK1.1)LocalDate、LocalTime、LocalDateTime(JKD1.8)DateTimeFormatter(JDK1.8)MathRandom枚举Stream 流式计算常用类内置包装类基本数据
2022-05-27 00:24:00
102
原创 JavaSE-IO
JavaSE-IOFile 类引入IO 流FileInputStream 类FileOuputStream 类文件内容的复制其他复制方法FileReader,FileWriter 字符流BufferedReader,BufferedWriter 缓冲流System 类对IO的支持,转换流DataOutput[Input]Stream 数据流ObjectOutput[Input]Stream 对象流复制整一个文件夹File 类File 可以帮助我们快速获取文件或者文件夹的属性等信息。查找文件或者文件夹
2022-05-27 00:23:36
86
原创 JavaSE-函数式接口、lambda表达式
JavaSE-函数式接口、lambda表达式函数式接口FunctionPredicateConsumerSupplierlambda 表达式实现接口作用域问题、使用说明玩法函数式接口函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。函数式接口可以被隐式转换为 lambda 表达式。Lambda 表达式和方法引用(实际上也可认为是Lambda表达式)上。 // 定义一个函数型接口,特点传入参数,调用一个方法 @Funct
2022-05-27 00:23:17
132
原创 JavaSE-反射
JavaSE-反射类加载反射的意义、原理、作用反射信息(字节码信息)类的动态加载类加载器Classloader使用反射信息权限问题(非public)访问类属性访问类方法访问类构造器访问类继承关系访问泛型访问注解信息访问 ClassLoader类关于反射的面试题什么是反射?反射就是Reflection,Java的反射是指程序在运行期可以拿到一个类的所有信息。类加载除了int等基本类型外,Java的其他类型全部都是class(包括interface)。例如:StringObjectRunnab
2022-05-27 00:23:05
67
原创 JavaSE-内存分析、内存控制、异常机制、注解
JavaSE-内存分析、异常机制、注解内存分析异常机制注解内置注解元注解自定义注解内存分析// Student.javapublic class Pet{ String name; int age; public static void shout(){ System.out.print("它叫"+this.name+',年龄:'+this.age); }}// Main.javapublic class Main{ public static void main(String[
2022-05-26 19:25:24
133
原创 JavaSE-面向对象编程(oop)
JavaSE-面向对象编程(oop)类与实例化对象构造器封装单继承重写多态instanceof 语法类型转换抽象类接口类(多继承)内部类成员内部类静态内部类局部内部类匿名内部类Object 类序列化、反序列化面向对象编程的本质就是:以类的方式组织代码,以对象的方式组织(封装)数据。面向对象的三大特性:封装继承多态类与实例化对象实例化对象的方式调用new语句创建对象// Student.javapublic class Student{ String studentName;
2022-05-26 19:24:23
197
原创 JavaSE-方法、this 指向、(非)静态代码块
JavaSE-方法、this 指向、(非)静态代码块方法定义静态方法与非静态方法方法调用方法重载形参与实参可变参数递归方法值传递与引用传递main 方法this 指向静态代码块方法定义修饰符 返回值类型 方法名(参数类型,参数名){ ... 方法体 ... return 返回值;}修饰符:可选常用public / static。返回值类型:方法可能会存在返回值。returnValueType是方法的返回值的类型。有返回至请根据返回类型进行设置(基本数据类型),无返回值则void。
2022-05-26 19:23:30
165
原创 JavaSE-数组八大排序
JavaSE-数组八大排序冒泡排序选择排序直接插入排序希尔排序快速排序归并排序基数排序堆排序冒泡排序原理数组元素两两比较,交换位置,大元素往后放。每比较一轮少一次两两比较。public class Main{ public static void main(String[] args){ int[] arr = {24, 69, 80, 57, 13}; int temp = 0; for(int i = 0; i < arr.length-1; i++){ /
2022-05-26 19:22:38
142
原创 JavaSE-流程控制
JavaSE-流程控制Scanner 包装类顺序结构选择结构循环结构break continueScanner 包装类Scanner 类的基本使用创建实例对象public class Demo{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); }}判断是否输入public class Demo{ public static void main(String
2022-05-26 19:21:29
57
原创 JavaSE-数组
JavaSE-数组数组声明与使用数组常用方法Arrays工具类合并数组数组Java提供了一种叫作数组的数据结构,它是一种用来存储相同类型元素的固定大小顺序集合。 数组用于存储数据集合,但也可以将数组视为相同类型的变量集合。可以是一维甚至多维。数组变量本身属于引用类型,数组也可以看成对象(同样可以通过 new 实例化对象),数组中每一个元素相当于对象成员本身,存放于内存的堆空间中。数组声明与使用数组的声明声明数组变量语法:dataType[] arrayRefVa
2022-05-26 19:19:42
49
原创 JavaSE-基础语法(三)
JavaSE-基础语法(三)运算符包机制运算符运算符说明:算数运算符:+,-,*,/,%,++,–赋值运算符:=关系运算符:>,<,>=,<=,==,!=,instanceof逻辑运算符:&&,||,!位运算符:&,|,^,~,>>,<<,>>>条件运算符:? :扩展运算符:+=,-=,*=,/=i++ 与 ++i 的区别public class Demo { public stat
2022-05-26 19:18:44
90
原创 JavaSE-基础语法(二)
JavaSE-基础语法(二)变量,常量成员变量、局部变量作用域问题关键字变量,常量静态变量、常量与类一起加载,在方法中可以直接进行调用。public class Main{ public static String name = "hello"; public static final String NAME = "world"; public static void main(String[] args){ System.out.println(name); //=> hel
2022-05-26 19:16:53
66
原创 JavaSE-基础语法(一)
JavaSE-基础语法(一)helloworld注释注解数据类型基本数据类型引用数据类型类型转换helloworldpublic class HelloWorld{ public static void main(String[] args) { System.out.println("HelloWorld") }}注释行内注释 //块注释/****/文档注释/*** @author 作者* @version 版本* @since jdk* @param
2022-05-26 19:16:01
713
原创 JavaSE-安装与环境配置
JavaSE(一)环境配置基础语法HelloWorld注释数据类型基本数据类型数值类型布尔类型引用数据类型类接口数组枚举类型转换环境配置安装 JDKhttp://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html配置电脑环境打开电脑环境配置系统变量中添加变量名:Java_Home变量值:javaSDK 安装路径配置系统变量中的 Path 变量编辑文本在最前面添加 %Java
2022-05-26 19:13:44
161
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人