
java基础进阶学习
文章平均质量分 84
java基础进阶学习
左边有只汪
程序员中的小欻欻
展开
-
Spring5框架
1. 课程内容介绍2. Spring框架概述3. Spring5 入门案例原创 2021-06-19 18:00:51 · 156 阅读 · 0 评论 -
正则表达式
正则表达式语法字符说明\将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n"匹配字符"n”。"\n"匹配换行符。序列"\\“匹配”","\(“匹配”("。^匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与"\n"或"\r"之后的位置匹配。$匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multili原创 2021-02-05 09:40:05 · 364 阅读 · 0 评论 -
Java9,10,11的新特性
jdk91. 目录结构改变2. 模块化系统使用junit也必须要先在module-info.java下先requires一下3. jshell命令/vars列出所有变量/methods列出所有定义的方法/list列出到目前为止[定义的]数据的列表/edit调出编辑框jshell中再次定义一个变量是可以的, 比如之前已经定义了int m =10;相当于一个覆盖没有受检异常是指, 没有编译时异常throws xxException或tryCatch原创 2020-12-16 13:12:16 · 607 阅读 · 0 评论 -
jdk8新特性
接口中的默认方法与静态方法默认方法与静态方法使用概述https://www.runoob.com/java/java8-default-methods.html常用类中的日期相关API注解中的类型注解与重复注解集合在jdk8底层有一些变化jdk8以前,实在new对象时就把底层数组造好了, jdk8的时候new对象的时候不造, 等到第一次添加数据的时候再造出数组HashMap在jdk8时候应用了红黑树Lambda表达式函数式(Functional)接口方法引用与构造器引用强...原创 2020-12-10 12:53:41 · 221 阅读 · 0 评论 -
反射机制与动态代理
反射机制概述Class是描述类的类 (对象可以由类来描述, 类可以由Class类来描述)理解Class类并获取Class实例类的加载与ClassLoader的理解创建运行时类的对象获取运行时类的完整结构调用运行时类的指定结构反射的应用: 动态代理...原创 2020-10-28 11:28:08 · 165 阅读 · 0 评论 -
网络编程
网络编程概述网络通信要素概述一. 网络编程中有两个主要的问题如何准确地定位网络上一台或多台主机, 定位主机上的特定的应用找到主机后如何可靠高效的进行数据传输二. 网络编程中的两个要素对应问题一: IP和端口号提供网络通信协议(TCP/IP参考模型,分成4层,应用层, 传输层, 网络层, 物理+数据链路层)三. 通信要素1: IP和端口号IP: 唯一的标识Internet上的计算机(通信实体)在Java中使用InetAddress类代表IPIP分类: IPv4 和 IP原创 2020-10-20 17:01:18 · 61 阅读 · 0 评论 -
File与IO流
File类的使用File类中涉及到关于文件或文件目录的创建, 删除, 重命名, 修改时间, 文件大小, 获取子文件等方法. 但是并未设置到写入或读取文件内容的操作, 如果需要读取或写入文件内容, 必须使用IO流来完成后续File类的对象常会作为参数传递到流的构造器中, 指明读取或写入的"终点"File常见构造器路径分隔符File类常用方法IO流原理及流的分类节点流(或文件流)缓冲流转换流标准输入, 输出流打印流数据流对象流随机存取文件流NIO.2中Path, P原创 2020-10-15 15:12:44 · 247 阅读 · 0 评论 -
泛型
为什么要有泛型在集合中使用泛型总结:集合接口或集合类在jdk5.0时都修改为带泛型的结构.在实例化集合类时, 可以指定具体的泛型类型指明完以后, 在集合类或接口中凡是定义类或接口时, 内部结构(比如: 方法, 构造器, 属性等)使用到类的泛型的位置, 都指定为实例化的泛型类型. 比如: add(E e) —> 实例化以后: add(Integer e)注意点: 泛型的类型必须是一个类, 不能是基本数据类型, 需要用到基本数据类型的位置, 拿包装类替换如果实例化时没有指明泛型的原创 2020-08-17 15:06:18 · 222 阅读 · 0 评论 -
集合
Java集合框架概述一.集合创建的概述1. 集合,数组都是对多个数据进行存储操作的结构,简称Java容器 说明: 此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储2.1 数组在存储多个数据方面的特点: > 一旦初始化以后,长度确定了 > 数组一旦定义好,其元素的类型也就确定了 .我们也就只能操作指定类型的数据了 比如: String[] arr ;int[] arr1;Object[] arr2;2.2 数组在存储多个数据方面的缺点: > 一旦初始化后,长原创 2020-08-10 11:47:44 · 192 阅读 · 0 评论 -
Object类
常用方法:protected Object clone()//负责对象克隆int hashCode()//获取对象哈希值boolean equals(Object obj)//判断两个对象是否相等String toString() //将对象转换成字符串形式protected void finalize()//垃圾回收期 负责调用的方法toString()方法以后所有类的toSt...原创 2020-07-01 15:23:12 · 93 阅读 · 0 评论 -
枚举类和注解
枚举类一.枚举类的使用 1. 枚举类的理解: 类的对象只有有限个,确定的,我们称此类为枚举类 2. 当需要定义一组常量时,强烈建议使用枚举类 3. 如果枚举类中只有一个对象,则可以作为单例模式的实现方式如何自定义枚举类jdk5.0之前自定义枚举类public class EnumTest { public static void main(String[] args) { Season spring = Season.SPRING; System.o原创 2020-05-26 14:44:52 · 364 阅读 · 0 评论 -
常用类
字符串常用类String特性String类:代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。String是一个final类,代表不可变的字符序列字符串是常量,用双引号引起来表示。它们的值在创建之后不能更改。String对象的字符内容是存储在一个字符数组value[]中的。String字符串,使用一对""引起来表示 * 1. String声明为final的,不可被继承 * 2. String实现了Serializable接口,表示字符原创 2020-05-25 17:26:27 · 192 阅读 · 0 评论 -
多线程
创建线程的方式一: 继承Thread类创建一个继承于Thread类的子类重写Thread类的run()创建Thread类的子类的对象通过此对象调用start()/** 多线程的创建方式一: 继承于Thread类 1. 创建一个继承于Thread类的子类 2. 重写Thread类的run() 3. 创建Thread类的子类的对象 4. 通过此对象调用start() <p> 例子: 遍历100以内所有的偶数 @author YangJunyi *///1. 创建一个原创 2020-05-21 09:01:46 · 762 阅读 · 2 评论 -
多线程_基本概念
进程: 程序的一次执行过程,或是正在运行的一个程序,程序加载到内存当中了就变成了一个进程, 程序是一段代码线程: 进程可进一步细化为线程,线程是一个程序内部的一条执行路径,比如360可以同时执行体检,杀毒,清理功能 360就是支持多线程的在JVM中 堆和方法区是进程之内共享的,所以他们是在线程之间共享的,所以会出现一些安全隐患java.exe这个进程至少有三个线程 main()主线程,gc...原创 2020-04-29 17:25:04 · 159 阅读 · 0 评论 -
Arrays工具类
主要使用二分法查找和排序排序: Arrays.sort() 这个方法是没有返回值的,传入的数组直接就对它排序了二分法查找:Arrays.binarySearch()原创 2020-04-29 10:04:35 · 113 阅读 · 0 评论 -
二分法查找(折半查找)算法
二分法的前提是数组已经从小到大排序了,没有排序的数据是无法查找的二分法查找效率高于"一个挨着一个"这种查找方式二分法查找的终止条件: 一直折半,直到中间的数据就是要找到的数据为止10(下标0) 11 12 13 14 15 16 17 18 19 20(下标10) arr数组通过二分法查找,找出18这个元素的下标: (0+10) / 2 --> 中间元素下标: 5 中间元素是...原创 2020-04-29 09:58:06 · 769 阅读 · 0 评论 -
选择排序算法
核心(先选后排,每一次都找出当前最大或最小的放在最前面或最后面):第一次从这堆参与比较的数据当中找出最小值拿着这个最小值和最前面的元素交换位置第二次从刨除掉最小的数据以外的数据中再找出最小的,放到第二小的位置选择排序的关键点在于,怎么找出一堆数据中最小的选择排序相比于冒泡排序而言,每一次的交换位置都是有意义的,冒泡的交换有点浪费,所以选择排序比冒泡排序效率高,冒泡排序和选择排序的比较次数...原创 2020-04-28 15:53:46 · 118 阅读 · 0 评论 -
冒泡排序算法
冒泡排序算法核心是什么每一次循环结束以后,都要找出最大的数据,放到参与比较的数组的最右边一共要循环length -1次 因为最后一次不需要进行比较3,2,7,6,8拿着3和右边相邻的2进行比较 如果左边>右边,交换位置2,3,7,6,8继续拿着上一次比较之后的结果中右边较大的数据和后续的数据进行比较比如再次比较就是拿着3和7进行比较 大的是7 位置不动再次比较就是拿着7和...原创 2020-04-28 15:18:35 · 184 阅读 · 0 评论 -
main方法上的String[] args有什么用
JVM调用main方法的时候,会自动传一个String[]过来默认传过来数组的长度是0,并且args不是null这个数组什么时候里面会有值呢?其实这个数组是留给用户的,用户可以在控制台上输入参数,这个参数自动回呗转换为String[] args例如这样运行程序 java ArrayTest05 abc def xyz,这个时候 JVM会自动将abc def xyz 通过空格的方式进行分离...原创 2020-04-28 14:23:24 · 285 阅读 · 0 评论 -
数组
java语言中数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object数组实际上是一个容器,可以同时容纳多个元素数组当中可以存储基本数据类型和引用数据类型数组因为是引用类型,所以数组对象是在堆内存当中数组在内存方面的内存结构 :数组当中如果存储的是Java对象的话,实际上存储的是对象的引用(内存地址),数组中不能直接存储java对象数组一旦创建,在java中规定,长度不可变...原创 2020-04-28 14:05:28 · 114 阅读 · 0 评论 -
匿名内部类
内部类:在类的内部又定义了一个新的类 被称为内部类分类:静态内部类:类似于静态变量实例内部类:类似于实例变量局部内部类:类似于局部变量使用内部类编写的代码,可读性很差,能不用尽量不用匿名内部类是局部内部类中的一种,因为类没有名字而得名学习匿名内部类主要是能看懂匿名内部类有两个缺点:缺点1: 太复杂,太乱,可读性差缺点2: 类没有名字,以后想重复使用,不能用cla...原创 2020-04-28 11:26:44 · 112 阅读 · 0 评论 -
Object的hashCode方法
在Object类中的hashCode()方法底层调用了C++public native int hashCode();//这个方法不是抽象方法,带有native关键字,底层调用C++程序hashCode()方法返回的是哈希码:实际上就是一个java对象的内存地址,经过 哈希算法,得出的一个值,所以hashCode()方法的执行结果可以等同看做一个java对象的内存地址...原创 2020-04-28 10:43:40 · 238 阅读 · 0 评论 -
Object的finalize方法
这个方法是protected修饰的在Object中的源代码是 protected void finalize() throws Throwable{ }只有一个方法体, 里面没有代码 这 个方法不需要程序员手动调用,JVM的垃圾回收期负责调用这个方法.不像equals toString 是需要你写代码调用的,finalize只需要重写,重写完了会由GC调用执行时机: 当一个java...原创 2020-04-28 10:37:49 · 290 阅读 · 0 评论 -
equals方法深层理解
重写equals()方法写法public boolean equals(Object obj){ if(obj == null || !(obj instanceof User)) return false; if(this == obj) return true; User u = (User)obj; if(用户名相同 && 家庭住址相同){...原创 2020-04-28 10:17:26 · 120 阅读 · 0 评论 -
访问权限控制符
访问控制权限都有哪些?4个private 私有public 公开protected 受保护默认他们控制的范围是什么?private 表示私有的,只能在本类中访问public表示公开的,在任何位置都可以访问"默认"表示只能在本类以及同包下访问protected表示只能在本类,同包,子类中访问访问控制权限修饰符可以修饰什么?属性(4个都能用)方法(4个都能用)类...原创 2020-04-27 15:10:21 · 208 阅读 · 0 评论 -
package和import总结
packagepackage出现在java源文件第一行带有包名的编译方法 javac -d xxx.java怎么运行 java 完整类名importimport 什么时候不需要?java.lang不需要 同包下不需要怎么用?import 完整类名;import 包名.*;...原创 2020-04-27 15:01:10 · 147 阅读 · 0 评论 -
抽象类与接口的区别
抽象类是半抽象的.接口是全抽象的.抽象类中有构造方法(他的构造方法是给子类用的)接口中没有构造方法接口和接口之间支持多继承类和类之间只能单继承\一个类可以同时实现多个接口一个类只能继承一个抽象类接口中只允许出现常量和抽象方法抽象类中允许出现普通方法接口一般都是对"行为"的抽象...原创 2020-04-27 14:44:17 · 180 阅读 · 0 评论 -
接口总结
接口基础语法接口是一种引用数据类型接口是完全抽象的接口支持多继承,一个接口可以继承多个接口接口中只包括常量和抽象方法(都是public修饰的)接口中抽象方法的public abstract可以省略接口中的常量的public static final可以省略接口中方法不能有方法体当一个非抽象的类实现接口,必须将接口中所有的抽象方法全部实现一个类可以实现多个接口extends和i...原创 2020-04-27 14:40:17 · 136 阅读 · 0 评论 -
抽象类总结
抽象类是对类的抽象 也属于引用数据类型抽象类语法 在class前添加abstract抽象类是无法实例化的,无法创建对象的final和abstract不能联合使用,这两个关键字是对立的抽象类的子类可以是抽象类也可以是非抽象类抽象类不能实例化,但是可以有构造方法,这个构造方法是给子类使用的抽象类中不一定有抽象方法,但是抽象方法必须出现在抽象类中抽象方法定义:public abstrac...原创 2020-04-27 14:14:26 · 139 阅读 · 0 评论 -
final关键字
1.1 final修饰的类无法被继承1.2 final修饰的方法无法覆盖1.3 final修饰的变量只能赋一次值1.4 final修饰的引用一旦指向某个对象,则不能再重新指向其他对象,但该引用指向的对象内部的数据是可以修改的1.5 final修饰的示例变量必须手动初始化,不能采用系统默认值1.6 final修饰的实例变量一般和static联合使用,称为常量 常量的命名都是大写 并且单词...原创 2020-04-27 14:06:17 · 83 阅读 · 0 评论 -
idea常用快捷键
IntelliJ IDEA代码常用的快捷键有:List itemAlt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shift+C 最近更改的代码...原创 2020-04-27 14:01:36 · 311 阅读 · 0 评论