
java
文章平均质量分 74
zxfhahaha
这个作者很懒,什么都没留下…
展开
-
单例模式以及以用户id区分的单例模式
单例模式写单例模式 双重检查常考问题为什么要有私有构造器为什么用volatile修饰写单例模式 双重检查import java.util.*;Class Singleton{ // 构造器 private Singleton(){ } // 创建对象 private static volatile Singleton singleton; public static Singleton getSingleton(){ if(single原创 2021-08-16 16:56:55 · 451 阅读 · 0 评论 -
【LeetCode】贪心
贪心55. 跳跃游戏55. 跳跃游戏55. 跳跃游戏给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的原创 2021-07-13 19:31:06 · 511 阅读 · 0 评论 -
【Java】Java8新特性:CompletableFuture
CompletableFutureJava CompletableFuture 详解原创 2021-06-17 15:41:53 · 747 阅读 · 1 评论 -
【Java】Java8 新特性
Java8 新特性Lambda表达式语法格式:Lambda表达式的使用函数式接口方法引用与构造器引用方法引用情况一:对象::实例方法情况二:类::静态方法情况三:类::实例方法构造器引用数组引用强大的StreamAPI创建StreamStream的中间操作筛选与切片映射排序Stream的终止操作匹配与查找归约收集Optional类创建Optional类对象的方法判断Optional容器中是否包含对象获取Optional容器的对象Lambda表达式语法格式:lambda表达式的本质:作为函数式接原创 2020-10-30 11:57:19 · 291 阅读 · 1 评论 -
【Java】反射
反射java反射机制java.lang.Class类获取Class实例(重点)方式一:调用运行时类的属性 .class方式二:通过运行时类的对象 调用getClass()方式三:调用Class的静态方法 forName(String classPath) 【用的最多】方式四:使用类的加载器 ClassLoader(了解)类的加载过程java反射机制什么是反射java反射提供的功能:在运行时判断任意一个对象所属的类在运行时构造任意一个类的对象在运行时判断任意一个类所具有的成员变量和方法在原创 2020-10-28 21:16:48 · 320 阅读 · 0 评论 -
【Java】网络编程
网络编程网络通信要素通信要素1:IP和端口号IPInetAddress类实例化常用方法:getHostName()常用方法:getHostAddress()端口号通信要素2:网络协议TCP网络编程例子1:客户端发送信息给服务端,服务端将数据显示在控制台上例子2:客户端发送文件给服务端,服务端将文件保存在本地例子3:返回“发送成功”给客户端UDP网络编程URL编程网络通信要素如何实现网络中的主机互相通信通信双方地址IP:网络当中唯一定位的一台主机端口号:定位一个主机上不同的应用程序一定的规则原创 2020-10-28 16:32:49 · 187 阅读 · 0 评论 -
【Java】IO流
IO流概述IO分类节点流(文件流)字符流 FileReader 和FileWriterFileReader()FileWriter读入和写出一起示例字节流: FileInputStream FileOutputStream缓冲流(处理流的一种)BufferedInputStream BufferedOutputStreamBufferedReader BufferedWriter概述IO分类抛异常要用try-catch-finally的方式节点流(文件流)字符流 FileReader 和Fi原创 2020-10-25 17:33:06 · 129 阅读 · 0 评论 -
【Java】File类
File类实例化常用方法获取功能获取名字、日期、长度、最后创建日期等适用于文件目录的两个方法:把文件重命名为指定的文件路径File类的判断功能File类的创建功能File类的删除功能实例化构造器1 :File(String filepath)File file1 = new File("hello.txt");//相对路径,相对于当前moduleFile file2 = new File("C:\\JavaProject\\JavaSenior\\io\\src\\hi.txt");//绝对路径原创 2020-10-23 14:38:46 · 126 阅读 · 0 评论 -
【Java】集合框架
集合框架Collection接口List接口ArrayListLinkedListVectorSetMap接口HashMapTreeMapHashtablePropertiesCollection接口单列集合,用来存储一个一个的对象List接口和Set接口都实现了Collection接口常用方法:add(Object e) 将元素e添加到集合Coll中size() 获取添加的元素的个数addAll 另一个Collection的元素全都添加clear() 清空集合元素原创 2020-10-20 22:06:13 · 175 阅读 · 1 评论 -
【Java】枚举类
枚举类使用enum关键字定义枚举类枚举类是类的对象只有有限个,确定的如果枚举类中只有一个对象,则可作为单例模式的实现方式使用enum关键字定义枚举类enum类默认继承于java.lang.Enum类,已经重写了toString方法,输出对象的名字...原创 2020-10-20 10:48:34 · 184 阅读 · 0 评论 -
【Java】比较器
Java比较器自然排序java.lang.Comparable定制排序java.util.Comparator比较Comparable和Comparator在Java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题Java实现对象排序的方式有自然排序和定制排序自然排序java.lang.Comparable像String、包装类等实现了Comparable接口,重写了CompareTo(obj)方法,给出了比较两个对象大小的方式,进行了从小到大的排列对于自定义类需要排序的话,就要原创 2020-10-18 12:12:05 · 251 阅读 · 1 评论 -
【Java】字符串类
字符串类StringString对象的创建String不同拼接操作的内存上对比String常用方法String与其他结构的转换String<--->基本数据类型、包装类String 与 char[] 转换String 与 byte[] 转换StringBufferStringString:字符串,使用一对”""引起来表示。String声明为final的,不可被继承String实现了serializabLe接口:表示字符串是支持序列化的。实现了ComparabLe接口:表示Str原创 2020-10-16 11:06:11 · 281 阅读 · 0 评论 -
【Java基础】多线程
多线程基本概念: 程序、进程、线程并行与并发多线程的优点线程的创建和使用线程的生命周期线程的同步线程的通信基本概念: 程序、进程、线程一个java应用程序java.exe,至少有三个线程:main()主线程,gc()垃圾回收线程,异常处理线程并行与并发并行:多个cpu同时执行多个任务。(多个人同时做不同的事)并发:一个cpu(采用时间片)同时执行多个任务。如:秒杀、多个人做同一件事多线程的优点线程的创建和使用线程的生命周期线程的同步线程的通信...原创 2020-10-13 09:08:57 · 99 阅读 · 0 评论 -
【Java】第七章 异常处理
异常处理异常体系结构ErrorException编译时异常(checked)运行时异常(unchecked) RuntimeExceptionNullPointerException 空指针异常IndexOutOfBoundsExceptionClassCastExceptionNumberFormatExceptionInputMismatchExceptionArithmeticException异常处理机制方式一:try-catch-finally方式二:throws+异常类型异常体系结构java原创 2020-10-03 11:43:41 · 265 阅读 · 0 评论 -
【Java】单例设计模式
单例设计模式单例设计模式的概念单例设计模式的实现饿汉式懒汉式饿汉式和懒汉式的对比单例设计模式的优点单例设计模式的应用场景单例设计模式的概念单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类智能存在一个对象实例单例设计模式的实现饿汉式上来就new好,用的时候直接用public class SingletonTest1 { public static void main(String[] args){ Bank bank1 = Bank.getInstance(原创 2020-10-02 15:43:04 · 127 阅读 · 0 评论 -
【Java】对象与类
对象和类类属性方法对象的内存解析类属性属性(成员变量)vs 局部变量在类中声明的位置不同属性:直接定义在类的一对{}内局部变量:声明在方法内、方法形参、代码器内、代码块内、构造器形参、构造器内部的变量权限修饰符的不同可以在声明属性时,指明其权限,使用权限修饰符(private、public、缺省、protected)局部变量不可以使用权限修饰符默认初始化值属性根据其类型有默认初始化值局部变量没有默认初始化值,因此在调用局部变量时必须赋值。内存中加载位置不一样属性加载到堆空间原创 2020-09-29 12:06:50 · 211 阅读 · 0 评论 -
【Java】数组
数组Array数组的概述一维数组声明和初始化数组的长度 array.length数组元素的默认初始化值整形和浮点型数组元素char型boolean型引用数据类型遍历数组for 下标循环for each 循环 (不考虑下标Arrays.toString(a)数组的内存解析内存的简化结构多维数组二维数组的声明和初始化Arrays.deepToString() 快速打印二维数组二维数组的内存解析数组中涉及的常见算法数组元素的赋值(杨辉三角、回形数)求数值型数组中元素的最大值、最小值、平均数、总和数组的复制、反转原创 2020-09-28 20:35:19 · 219 阅读 · 0 评论 -
【Java】Math类
Math类Math.randomMath.randomMath.random() 返回[0.0,1.0)的随机数,为double型获取指定范围[a,b]内的随机数(int)(Math.random()*(b-a+1)+a)eg:获取一个两位数的随机数//两位数的随机数即[10,99]int value = (int)(Math.random()*99+10);...原创 2020-09-27 09:54:46 · 108 阅读 · 0 评论 -
【Java】读取输入
Scanner原创 2020-09-25 15:54:06 · 288 阅读 · 0 评论 -
2020-09-24
java基础语法关键字和保留字标识符变量基本数据类型整型浮点类型字符型布尔型基本数据类型转换自动提升类型强制类型转换引用数据类型字符串 StringStringStringBuilder和StringBuffer进制与进制间的转换二进制运算符算术运算符赋值运算符比较运算符逻辑运算符位运算符三元运算符关键字和保留字关键字(keyword)关键字中所有字母都是小写true、false、null 不算关键字 但基本当作关键字来用保留字(reserved word)现有java版本没用,但以后可能会作原创 2020-09-24 22:12:46 · 114 阅读 · 0 评论 -
【java】基础语法
java基础语法关键字和保留字标识符变量数据类型整型浮点类型字符型布尔型基本数据类型转换自动提升类型强制类型转换关键字和保留字关键字(keyword)关键字中所有字母都是小写true、false、null 不算关键字 但基本当作关键字来用保留字(reserved word)现有java版本没用,但以后可能会作为关键字用,自己命名标识符的时候要避开goto、const标识符凡是自己可以起名字的地方都叫标识符。如:类名、变量名、方法名标识符的命名规则:由26个字母、下划线、$组成原创 2020-09-24 12:13:44 · 150 阅读 · 0 评论 -
【java】day02基础语法
java基础语法关键字和保留字标识符强制类型转换关键字和保留字关键字(keyword)关键字中所有字母都是小写true、false、null 不算关键字 但基本当作关键字来用保留字(reserved word)现有java版本没用,但以后可能会作为关键字用,自己命名标识符的时候要避开goto、const标识符凡是自己可以起名字的地方都叫标识符。如:类名、变量名、方法名标识符的命名规则:由26个字母、下划线、$组成数字不能开头不可以使用关键字和保留字,但能包含标识符命原创 2020-09-23 20:53:10 · 102 阅读 · 0 评论 -
【java】硬件
硬件中央处理器(Central Processing Unit;CPU)存储设备磁盘驱动器光盘驱动器USB内存中央处理器(Central Processing Unit;CPU)赫兹(Hz):每台计算机内部的时钟以固定速度发射电子脉冲,时钟速度越快,在给定的时间段内执行的指令就越多。速度的计量单位是赫兹(Hz)。1Hz相当于1秒一个脉冲。CPU速度不断提高,现在以**千兆赫(GHz)**表述。1khz=1024hz1mhz = 1024khz1Ghz = 1024mhz存储设备内存中的信息在断原创 2020-09-21 20:51:28 · 197 阅读 · 0 评论 -
【Java】各种文档
@TOC(文档)jdeprscan工具检查代码中是否使用了Java API已经废弃的特性。https://docs.oracle.com/javase/9/tools/jdeprscan.htm#JSWOR-GUID-2B7588B0-92DB-4A88-88D4-24D183660A62原创 2020-09-18 18:02:51 · 344 阅读 · 0 评论 -
【java】时间类
时间类Date构造对象LocalDate构造对象得到当前日期的年月日和周几生成当前日期之后或之前n天的日期示例程序:显示当前月的日历Java类库包含了用来表示时间点的Date类,还有日历表示法表示日期的LocalDate类Date构造对象构造器的名字应该与类名相同Date birthday = new Date();birthday = null; //指示这个对象变量目前没有引用任何对象LocalDate构造对象不要用构造器构造LocalDate类的对象 应使用静态工厂方法Local原创 2020-09-09 16:31:34 · 219 阅读 · 0 评论