Java
文章平均质量分 94
JavaSE 零基础从入门到精通
个人从事编程多年深知入门学习时某些基础很难理解,这次把Java入门从头梳理的一遍,希望对自学的人有所帮助。
陈塘关哪吒
高级搬砖攻城狮
展开
-
Java动态代理
用看看这个材料就够了,好好看哦原创 2022-06-09 21:10:18 · 278 阅读 · 0 评论 -
048-Java注解(JAVA SE 基础完结)
目录注解与注释定义自定义注解在程序使用(解析)注解感谢关注注解与注释注解:说明程序的,给计算机看的。 注释:用文字描述程序的,给程序员看的。定义注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说...原创 2020-02-05 11:10:21 · 294 阅读 · 0 评论 -
047-Java反射
反射:框架设计的灵魂框架:半成品软件。可以在框架的基础上进行软件开发,简化编码。概述反射:将类的各个组成部分封装为其他对象,这就是反射机制。好处:1.可以在程序运行过程中,操作这些对象。2.可以解耦,提高程序的可扩展性。编译完成后,.java和.class 都属于源代码阶段, 程序运行,.class被类加载器加...原创 2020-02-03 15:13:20 · 139 阅读 · 0 评论 -
046-Java Idea Junit单元测试
Junit单元测试测试分类黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。 白盒测试:需要写代码的。关注程序具体的执行流程。黑盒测试比如app测试,就点来点去,看是否预期结果,不关心过程。白盒测试会关心程序执行过程,观察程序执行每一步是否正确。Junit使用:白盒测试步骤:1.定义一个测试类(测试用例)...原创 2020-01-21 09:44:58 · 234 阅读 · 0 评论 -
045-Java 方法引用
目录冗余的Lambda场景方法引用符通过对象名引用成员方法通过类名称引用静态方法通过super引用成员方法通过this引用成员方法类的构造器引用数组的构造器引用感谢关注在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿什么参数做什么操作。那么考虑一种情况:如果我们在Lambda中所指定的操作方案,已经有地方存在相同方案,那是否还...原创 2020-01-20 09:44:10 · 152 阅读 · 0 评论 -
044-Java Stream流
目录Stream流传统集合的多步遍历代码Stream的更优写法流式思想概述获取流常用方法逐一处理:forEach过滤:filter映射:map统计个数:count取用前几个:limit跳过前几个:skip组合:concat感谢关注Stream流说到Stream便容易想到I/O Stream,而实际上,谁规定“流”就一定是“IO流”呢?...原创 2020-01-19 09:53:20 · 151 阅读 · 0 评论 -
043-Java函数式接口-常用函数式接口
目录函数式接口@FunctionalInterface注解自定义函数式接口函数式编程Lambda的延迟执行性能浪费的日志案例体验Lambda的更优写法使用Lambda作为参数和返回值常用函数式接口Supplier接口Consumer接口Predicate接口Function接口感谢关注函数式接口函数式接口在Java中是指:有且仅有一个...原创 2020-01-17 10:57:12 · 240 阅读 · 0 评论 -
042-Java网络编程基础-Socket
目录软件结构C/S结构B/S结构网络通信协议协议分类UDPTCP网络编程三要素协议IP地址IP地址分类IPv4IPv6端口号TCP通信程序Socket类ServerSocket类TCP通信分析图解DEMO:客户端与服务端互发信息DEMO:客户端将文件上传到服务器感谢关注软件结构C/S结构全称为Cl...原创 2020-01-16 09:55:23 · 291 阅读 · 0 评论 -
041-Java序列化流-打印流
目录ObjectOutputStream类序列化操作ObjectInputStream类反序列化操作Serializable接口static关键字:静态关键字transient关键字:瞬态关键字打印流PrintStream类改变打印流向感谢关注Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的数据、对象的类型...原创 2020-01-15 14:09:55 · 158 阅读 · 0 评论 -
040-Java 转换流-字符集-InputStreamReader,OutputStreamWriter
目录字符编码和字符集字符编码字符集ASCII字符集ISO-8859-1字符集GBxxx字符集Unicode字符集编码引出的问题InputStreamReader类指定编码读取OutputStreamWriter类指定编码写出转换流理解图解转换文件编码感谢关注字符编码和字符集字符编码计算机中储存的信息都是用二进制数表示的,而我们...原创 2020-01-14 10:16:15 · 267 阅读 · 0 评论 -
039-Java缓冲流BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter
目录概述字节缓冲流效率测试字符缓冲流特有方法练习:文本排序分析实现感谢关注概述缓冲流也叫高效流,是对4个基本的FileXxx流的增强,所以也是4个流,按照数据类型分类:字节缓冲流:BufferedInputStream,BufferedOutputStream 字符缓冲流:BufferedReader,BufferedWriter缓冲流的基本原...原创 2020-01-13 14:30:05 · 248 阅读 · 0 评论 -
038-Java属性集Properties
目录Properties类概述构造方法常用方法与流相关的方法感谢关注Properties类概述java.util.Properties继承于Hashtable,来表示一个持久的属性集。Properties 可保存在流中或从流中加载。Properties集合是一个唯一和IO流相结合的集合,可以使用Properties集合中的方法store,把集合中的临时数据,持久...原创 2020-01-10 08:49:52 · 135 阅读 · 0 评论 -
037-Java IO 字符流 FileReader,FileWriter
目录字符输入流ReaderFileReader类读取字符数据字符输出流WriterFileWriter类写出数据关闭和刷新写出字符数组写出字符串续写和换行IO异常的处理JDK7前处理JDK7的处理JDK9的改进感谢关注 当使用字节流读取文本文件时,可能会有一个小问题。遇到中文字符时,可能不会显示完整的字符,那是因为一个...原创 2020-01-09 10:03:14 · 187 阅读 · 0 评论 -
036-Java IO- 字节流InputStream、OutputStream,FileInputStream、FileOutputStream
目录IO概述什么是IOIO的分类IO的流向说明java IO流Java IO分类字节流字节输出流OutputStreamFileOutputStream类写出字节写出字节数组写出指定长度字节数组写出换行字节输入流InputStreamFileInputStream类读取字节使用字节数组读取感谢关注IO概述什么是IO...原创 2020-01-08 10:01:29 · 135 阅读 · 0 评论 -
035-Java File类-递归
目录概述构造方法绝对路径和相对路径常量常用方法递归递归打印多级目录文件搜索文件过滤器FileFilterLambda优化感谢关注概述java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。构造方法public File(String pathname):通过将给定的路径名字符串转换为抽象路径...原创 2020-01-07 09:48:12 · 152 阅读 · 0 评论 -
034-Java Lambda表达式
目录概述Lambda 编程思想转换分析Lambda标准格式Lambda标准格式(无参无返回)Lambda的参数和返回值Lambda省略格式可推导即可省略省略规则Lambda的使用前提函数式接口感谢关注概述函数就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函...原创 2020-01-06 10:16:23 · 157 阅读 · 0 评论 -
033-Java线程池基础
目录概述线程池概念原理图线程池的使用外链感谢关注概述使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,频繁创建线程和销毁线程需要时间。有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Ja...原创 2020-01-03 10:07:05 · 103 阅读 · 0 评论 -
032-Java线程状态-线程间通信/等待唤醒机制wait()/notify
目录线程状态概述Timed Waiting(计时等待)BLOCKED(锁阻塞)Waiting(无限等待)线程的状态切换逻辑等待唤醒机制线程间通信什么是等待唤醒机制等待唤醒中的方法调用wait和notify方法需要注意的细节生产者与消费者问题感谢关注线程状态概述当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态...原创 2020-01-02 10:03:43 · 330 阅读 · 0 评论 -
031-Java多线程同步-线程安全-synchronized关键字-Lock锁
目录线程安全线程同步同步代码块同步方法Lock锁感谢关注线程安全如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。案例电影院要卖票,模拟电影院的卖票过程。假设要播放的电影是 “葫芦娃大战奥特曼”,本次电影的座位共100个(本场电影只能卖100张票)模拟...原创 2020-01-01 16:19:04 · 196 阅读 · 0 评论 -
030-Java多线程基础
目录并发与并行线程与进程线程调度Java多线程实现方式一 : 继承Thread类方式二:实现Runnable接口实现Runnable接口创建多线程程序的好处Thread类多线程的内存图感谢关注并发与并行并发:指两个或多个事件在同一个时间段内发生。并行:指两个或多个事件在同一时刻发生(同时发生)。在操作系统中,安装了多个程序,并发指的是在一段时...原创 2019-12-31 10:04:07 · 142 阅读 · 0 评论 -
029-Java异常
目录概述异常体系异常分类异常的产生过程解析异常处理抛出异常throw声明异常throws捕获异常try…catchfinally 代码块异常注意事项自定义异常Obects.requireNonNull(Tobj)感谢关注概述异常:指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。常本身是一个类,产生异常就是创...原创 2019-12-30 09:55:00 · 275 阅读 · 0 评论 -
028-Idea Debug工具
目录Debug调试程序使用方式执行程序使用IDEA的断点调试功能,查看程序的运行过程感谢关注Debug调试程序可以让代码逐行执行,查看代码执行的过程,调试程序中出现的bug使用方式在行号的右边,鼠标左键单击,添加断点(每个方法的第一行,哪里有bug添加到哪里)右键,选择Debug执行程序程序就会停留在添加的第一个断点处。执行程序f8 : 逐行执行程...原创 2019-12-29 13:14:03 · 98 阅读 · 0 评论 -
027-Java Map-HashMap-LinkedHashMap
目录概述Map接口中的常用方法Map集合遍历键找值方式Entry键值对对象HashMap存储自定义类型键值LinkedHashMapHashtableJDK9对集合添加的优化感谢关注概述双列集合:例如IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即jav...原创 2019-12-27 09:42:13 · 184 阅读 · 0 评论 -
026-Java Collections工具类-Comparator
目录常用方法Comparator比较器Comparable和Comparator两个接口的区别Comparable Demo:Comparator Demo:感谢关注java.utils.Collections 是集合工具类,用来对集合进行操作常用方法 public static <T> boolean addAll(Collection<T...原创 2019-12-26 13:17:57 · 173 阅读 · 0 评论 -
025-Java可变参数
目录概述使用前提使用格式原理注意demo感谢关注概述在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,可以对其简化成如下格式修饰符 返回值类型 方法名(参数类型... 形参名){ }完全等价于修饰符 返回值类型 方法名(参数类型[] 形参名){ }后面这种定义,在调用时必须传递数组,而前者可以直接传递数据即可,J...原创 2019-12-25 09:49:00 · 157 阅读 · 0 评论 -
024-Java集合-List-Set
目录List接口List集合特点(有序,可重复)List接口中特有方法ArrayList集合Vector集合LinkedList集合Set接口特点HashSet集合哈希表HashSet存储自定义类型元素LinkedHashSet感谢关注List接口java.util.List 接口继承自Collection 接口,是单列集合的一个重...原创 2019-12-24 09:51:58 · 165 阅读 · 0 评论 -
023-Java Collection集合
目录概述CollectionIterator迭代器Iterator接口增强for感谢关注概述集合:集合是java中提供的一种容器,可以用来存储多个数据。集合和数组的区别数组的长度是固定的。集合的长度是可变的。 数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存...原创 2019-12-23 10:35:18 · 132 阅读 · 0 评论 -
022-Java泛型
目录引入泛型含有泛型的类含有泛型的方法含有泛型的接口泛型通配符泛型的上限泛型的下限感谢关注引入集合中是可以存放任意对象的,只要把对象存储集合后,那么这时他们都会被提升成Object类型。当我们在取出每一个对象,并且进行相应的操作,这时必须采用类型转换。public class GenericDemo { public static void...原创 2019-12-20 10:42:53 · 104 阅读 · 0 评论 -
021-常见数据结构理解
目录常见的数据结构栈队列数组链表红黑树感谢关注常见的数据结构堆栈、队列、数组、链表和红黑树栈stack,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其他任何位置进行添加、查找、删除等操作。特点先进后出(即,存进去的元素,要在后它后面的元素依次取出后,才能取出该元素)。例如,子弹压进弹夹,先压进去的子弹在下面...原创 2019-12-19 09:51:56 · 118 阅读 · 0 评论 -
020-Java基本数据包装类-自动拆箱与装箱
目录概述装箱与拆箱自动装箱与自动拆箱基本类型与字符串之间的转换概述Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率高,然而很多情况会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,顾名思义就是把基本数据类型用类包装起来。基本类型 对应的包装类(位于java.lang包中,也就是不用导...原创 2019-12-18 10:07:36 · 139 阅读 · 0 评论 -
019-Java常用API-Object-日期和时间类-System类-StringBuilder类
目录Object类toString方法equals方法Objects类日期时间类Date类DateFormat类将时间戳转换成字符串指定格式日期将指定字符串日期转成时间戳Calendar类System类currentTimeMillis方法arraycopy方法StringBuilder类感谢关注Object类java.lang....原创 2019-12-17 10:05:30 · 404 阅读 · 0 评论 -
017-Java内部类-匿名内部类
目录内部类成员内部类访问特点局部内部类关于内部类权限修饰符的使用匿名内部类感谢关注内部类将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。成员内部类定义在类中方法外的类。class 外部类 { class 内部类{ }}访问特点内部类可以直接访问外部类的成员,包括私有成员。外部类要访问内部类的...原创 2019-12-13 10:36:29 · 174 阅读 · 0 评论 -
016-Java 权限修饰符
目录四种访问权限不同权限的访问能力感谢关注,获取更多文章及资源四种访问权限在Java中提供了四种访问权限,使用不同的访问权限修饰符修饰时,被修饰的内容会有不同的访问权限,public:公共的。protected:受保护的default:默认的(default不是权限标识, 是什么都不写)private:私有的public具有最大权限。private则是...原创 2019-12-12 09:55:52 · 176 阅读 · 0 评论 -
015-Java final关键字
目录final修饰类修饰方法修饰变量感谢关注,获取更多文章及资源final不可改变,可以用于修饰类、方法和变量。修饰类被修饰的类不能被继承,但是该类可以继承别的类,也就是它本身可以有父类,但是不能有子类。final class 类名 {}修饰方法被修饰的方法不能被重写。对于类、方法来说,abstract关键字和final关键字不能同时使用,...原创 2019-12-11 10:18:14 · 84 阅读 · 0 评论 -
014-Java多态-instanceof关键字
目录多态定义多态的前提格式多态的好处多态访问成员变量的两种方式在多态的代码当中,成员方法的访问规则引用类型转换向上转型向下转型为什么要转型instanceof关键字感谢关注多态是继封装、继承之后,面向对象的第三大特性。生活中,比如跑的动作,小猫、小狗和大象,跑起来是不一样的。再比如飞的动作,昆虫、鸟类和飞机,飞起来也是不一样的。可见,同一行为,通...原创 2019-12-10 13:39:07 · 373 阅读 · 0 评论 -
013-Java接口interface
目录接口interface概述接口的定义含有抽象方法含有默认方法和静态方法含有私有方法和私有静态方法常量注意接口的使用子类实现接口demo接口的多继承感谢关注,获取更多文章及资源接口interface概述 接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内...原创 2019-12-09 09:50:46 · 146 阅读 · 0 评论 -
012-Java 继承-抽象类-抽象方法
目录继承方法重写super构造方法继承的特点抽象抽象方法抽象类感谢关注,获取更多文章及资源继承多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可。其中,多个类可以称为子类,单独那一个类称为父类、超类(superclass)或者基类。继承描述的是事物之间的所属关系,这种关系是: is-a 的...原创 2019-12-06 18:20:10 · 692 阅读 · 0 评论 -
018-Java Arrays工具类
目录public static List asList(T...a)public static boolean equals(boolean[]a, boolean[]a2)public static T[] copyOf(T[]original,intnewLength)public static void fill(Object[]a,Objectval)pu...原创 2019-12-16 10:37:05 · 97 阅读 · 0 评论 -
011-Java static关键字
目录static类变量(静态变量)静态方法访问静态原理图解静态代码块static它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的。也就是说,既然属于类,就可以不靠创建对象来调用了。类变量(静态变量)当 static 修饰成员变量时,该变量称为类变量。该类的每个对象都共享同一个类变量的值。任何对象都可以更改该类变...原创 2019-12-05 18:00:24 · 99 阅读 · 0 评论 -
010-Java String字符串
目录String 字符串特点字符串常量池字符串比较其他常用方法String 字符串java.lang.String 类代表字符串。Java程序中所有的字符串文字(例如"abc" )都可以被看作是实现此类的实例。类 String 中包括用于检查各个字符串的方法,比如用于比较字符串,搜索字符串,提取子字符串以及创建具有翻译为大写或小写的所有字符的字符串的副本。特点1...原创 2019-12-05 17:59:57 · 198 阅读 · 0 评论