JavaSE基础/核心知识学习笔记
文章平均质量分 60
Java基本数据类型、变量类型、顺序/选择/循环结构、数组、方法、面向对象(类的三特性、对象、接口)、异常、多线程、常用类(字符串类、时间类、比较类、System类等)、枚举、注解、集合、泛型、I/O流、网络编程、反射及jdk8新特性(Lambda表达式、StreamAPI、Optional)
e_nanxu
这个作者很懒,什么都没留下…
展开
-
Java七十四: Java基础/核心知识总结 — — “Java千字文”
Java基础/核心知识总结 — — “Java千字文”Java基础/核心知识笔记终于完结,从Java语言诞生到jdk8新特性,共计64篇博文,43幅自制插图,35张表格,7万6千余字,4600余行亲测代码,还有14篇IDEA使用笔记,可作为小伙伴们Java学习路上的一套随手参考资料。Java学习笔记地址 ,尚硅谷Java入门视频教程 ,狂神说Java (特别感谢尚硅谷宋红康老师和狂神说秦疆老师)Java系语法系:① 面向对象:语法框架② 异常处理:保驾护航空间系:① 字符原创 2021-12-27 15:52:03 · 314 阅读 · 0 评论 -
Java二:计算机语言发展进程 以及 JAVA的发展、特性、版本介绍
一、计算机语言简介一代语言:二进制二代语言:汇编语言为了方便人读写和编写,使用了大量的助记符目前应用逆向工程:破解一个游戏;把一个软件逆向开发出来(需要用到加密解密)机器人:计算机病毒三代语言:面向过程:C现代语言的鼻祖有高级语言的特点,也有汇编语言的特点用于书写操作系统、应用程序系统、工作系统设计以及一些不依赖计算机硬件的应用程序有很强的数据处理的能力,不仅是软件开发,还有各类科研、单片机等面向对象:C++、JAVA、C#、Python、PHP、JavaS原创 2021-05-31 15:42:33 · 191 阅读 · 1 评论 -
Java七:关键字、标识符及命名规范
标识符和关键字一、关键字关键字是特别意义的标识符,有时又叫保留字,还有特别意义的变量,不可以将关键字用于变量名、方法名、类名、[包名]((2条消息) Java常用包名及功能_dearcc的专栏-CSDN博客)和参数。abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelseenumextendsfinalfinallyfloatfor原创 2021-06-02 21:56:31 · 244 阅读 · 0 评论 -
Java七十三: Java8新特性 - - Optional类
Optional类一、引入空指针异常是导致Java应用程序失败的最常见原因,为了解决空指针异常,Google公司在著名的Guava项目中引入Optional类,通过检查空值的方式来防止代码污染,鼓励程序员写更干净的代码。Optional类(java.util.Optional)是一个容器类,它可以保存类型为T的值,代表这个值存在。或仅仅保存null,表示这个值不存在。原来用null表示一个值不存在,现在Optional可以更好的表达这个概念,并可以避免空指针异常。Javadoc描述:这是一个可以为原创 2021-12-14 07:58:58 · 310 阅读 · 0 评论 -
Java七十二: Java8新特性 - - Stream类
创建基于该集合的Stream对象,通过该Stream对象的操作来实现对该集合中数据的筛查、映射、排序等操作,产生一个符合某种条件的新的数据源,最后按照所需要的格式或条件终止操作并输出原创 2021-12-13 17:45:36 · 632 阅读 · 0 评论 -
Java七十一: Java8新特性 - - Lambda表达式
Java8新特性一、Lambda表达式本质:函数式接口的实例格式① 操作符 - >② 左 边:Lambda参数列表 (其实就是接口中的抽象方法的形参列表)③ 右 边:Lambda体 (其实就是重写的抽象方法的方法体)类型方式一@Test public void test1() { // 方式一:无参无返回值 Runnable r1 = new Runnable() { @Override原创 2021-12-12 12:14:12 · 644 阅读 · 0 评论 -
Java七十: 反射应用 - - 动态代理
动态代理一、代理设计模式原理使用一个代理将对象包装起来,然后用该代理对象取代原始对象。任何对原始对象的调用都要通过代理。代理对象决定是否以及何时将方法调用转到原始对象上。静态代理代理类和目标对象的类都是在编译期间就确定下来了,不利于程序的扩展。同时,每一个代理类只能为一个接口服务,这样程序开发中必然产生过多的代理。最好可以通过一个代理类完成全部的代理功能。动态代理客户通过代理类来调用其它对象的方法,是在程序运行时根据需要动态创建目标类的代理对象。3.1 使用场合:① 调试②原创 2021-12-11 01:45:07 · 398 阅读 · 0 评论 -
Java六十九: 反射
反射一、反射概述Reflection被视为动态语言的关键,反射机制允许程序在执行期间借助ReflectionAPI取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。就像一面镜子,透过这个镜子可以看到类的结构,所以我们形象的称之为:反射 理解Class类通过类的加载理解程序经过javac.exe命令后,会生原创 2021-12-10 13:32:50 · 151 阅读 · 0 评论 -
Java六十八: Java 网络编程概述
网络传输要素:IP和端口网络协议TCP/IP(三次握手、四次挥手)TCP/UDP/URL编程原创 2021-12-06 23:56:03 · 898 阅读 · 0 评论 -
Java六十六: NIO
NIO支持面向缓冲区、基于通道的IO操作;一套针对标准输入输出,另一套针对网络编程,多用于项目和框架底层;NIO.2,新增了Path、Paths、Files,内置很多方法原创 2021-12-05 10:48:50 · 103 阅读 · 0 评论 -
Java六十五: IO流
IO流:分为抽象基类InputStream、OutputStream、InputReader、OutputWriter 字节流File,处理文件 处理流,包括缓冲流Buffer、转换流(InputStreamReader,OutputStreamWriter)、对象流(Object)、标准输入输出流(System.in System.out)、打印流(Print)、数据流(Data)、随机存取文件流(RandomAccessFile)原创 2021-12-05 10:13:51 · 613 阅读 · 0 评论 -
Java -- IO流“五步”实现《新程序员》杂志海报的复制
《新程序员》海报原创 2021-11-30 23:30:33 · 218 阅读 · 0 评论 -
Java六十四: File类
File类引入File类的一个对象,代表一个文件或一个文件夹File类声明在java.io包下File类:文件/文件目录的创建、删除、重命名、获取文件的各种信息IO 流 :文件的读写操作,File类的对象作为参数传入到流的构造器中,指明读写“端点”。一、如何创建一个File对象(三种构造器)指明绝对路径 / 相对路径File file = new File("F:\\Java\\规范代码1.0\\IO流\\src\\file\\C.txt");File file1原创 2021-11-29 22:50:21 · 110 阅读 · 0 评论 -
Java六十三: 泛型
泛型引用标签设计背景集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在jdk5之前只能把元素类型设计为Object;jdk5之后使用泛型来解决:因为这个时候除了元素的类型不确定,其他部分是确定的,例如关于这个元素如何保存,如何管理等,因此此时把元素的类型设计成一个参数,这个类型参数叫做泛型。Collection ,List,ArrayList 这个就是类型参数,就是泛型一、集合中的泛型在集合中使用泛型① 集合接口或集合类在jd原创 2021-11-29 11:01:04 · 251 阅读 · 0 评论 -
Java六十二: Java 集合 - - Collections工具类
三、Collections工具类功能① 一个操作Set、List和Map等集合的工具类② 提供了一系列静态的方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象不可变、对集合对象实现同步控制等方法排序方法(List接口)方法表Set接口及Map接口中的元素是无序的,所以不涉及排序thodsummaryverse(List)反转List中的元素uffle(List)对List集合元素进行随机排序rt(List)根据元素的自然顺序对指定原创 2021-11-27 12:48:04 · 292 阅读 · 0 评论 -
Java六十一: Java 集合 - -Map接口(HashMap、LinkedHashMap、TreeMap、Properties)
接 集合 - Collection接口二、Map接口Map的实现类结构双列数据,存储key - value对的数据 - - - >类似高中的函数:y = f(x)HashMap:作为Map的主要实现类,线程不安全,效率高,存储 null 的 key 和 value| - - - - - LinkedHashMap:包装在遍历Map元素时,可按照添加的顺序实现遍历原因:在原有的HashMap地城结构基础上,添加了一对指针,分别指向前一个和后一个元素对于频繁的遍历操作,此类执原创 2021-11-26 23:02:38 · 1429 阅读 · 2 评论 -
Java六十: Java集合 - - Collection接口(List接口、Set接口)
集合引用集合(Collection)是方便对多个对象的统一存储,以前学过的储存结构式是数组(Array)① 共同点:都是对多个数据进行存储的结构,简称:Java容器 **注 :**此处的存储是指内存层面的存储② 数组的特点一旦定义,其长度就确定了 一旦定义,其元素类型就确定了③ 数组的弊端 初始化后,长度不可改变 提供的方法有限,不便于增删,效率不高 获取数组中实际元素个数的需求,数组没有现成的属性或方法使用数组存储数据的特点:有序、可重复。对原创 2021-11-26 19:28:01 · 379 阅读 · 0 评论 -
Java五十九: 注解 Annotation
注解- - Annotation一、注解概述从JDK5.0开始,Java增加了对元数据(MetaData)的支持,也就是Annotation。元数据 = 注解Annotation其实就是代码中的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过使用Annotation,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。代码分析工具、开发工具和部署工具可以通过这些补充信息进行验证或部署。Annotation可以像修饰符一样被使用,可用于修饰:包、类、构原创 2021-11-20 21:59:30 · 118 阅读 · 0 评论 -
Java五十八: 枚举类
枚举类一、枚举类的使用枚举类的理解:类的对象只有有限、确定的个数。当需要定义一组常量时,强烈建议使用枚举类如果枚举类中只有一个对象,则可以作为单例模式的实现方式二、如何定义枚举类方式一:jdk5.0之前,自定义枚举类public class EnumTest { public static void main(String[] args) { System.out.println(Season.AUTUMN); // {秋天:秋高气爽}原创 2021-11-19 23:13:27 · 186 阅读 · 0 评论 -
Java五十七:比较接口(Comparable、Comparator)
比较类引入Java中的对象,正常情况下,只能进行比较:== 或 != , 不能进行 > 或 < 的比较。 但在开发场景中,我们需要对多个对象进行排序,即需要比较对象的大小。 如何实现:需要两个接口中的任意一个:Comparable 或 Comparator一、Comparable接口自然排序像String、包装类等实现了Comparable接口,重写了compareTo( ) 方法,给出了比较两个对象大小的方式,方式是从小到大。实现Compa原创 2021-11-18 23:26:41 · 1744 阅读 · 0 评论 -
Java五十六:System、Math、BigInteger、BigDecimal类
一、System类native long currentTimeMillis()返回计算机时间,从1970年1月1日0时0分0秒至今的毫秒数void exit( int status )退出程序:status为0,表示正常退出;非零,表示异常退出void gc()请求系统进行垃圾回收String getProperty( String key )keyfunctionjava.versionJava运行时环境版本java.homeJava安装目录原创 2021-11-18 21:27:13 · 198 阅读 · 0 评论 -
Java五十五:时间类
时间类一、System类@Test public void test1(){ long time1 = System.currentTimeMillis(); System.out.println(time1); }// 1636943118349ms ,从1970年1月1日00时00分00秒至今// 时间戳二、Date类java.util.Date类(父类)两个构造器① new Date():创建一个对应当前时间的 Date 对原创 2021-11-15 11:22:03 · 467 阅读 · 0 评论 -
Java五十四: 字符串类(String类、StringBuffer类、StringBuilder类)
字符串类一、String的特殊性String:字符串,使用一对 “ ” 引起来表示String声明为final,不可被继承String实现了Serializable接口:表示字符串是支持序列化的,在I/O流中会涉及到对象流,就会涉及到 序列化,简单说面向对象,数据都是封装在对象当中的,对象实现了原创 2021-11-15 09:05:55 · 158 阅读 · 0 评论 -
Java五十三: 多线程
基本概念程序为完成特定任务、用某种语言编写的一组指令合集。为静态的进程一个程序在一次执行过程,为动态的,存在生命周期(例如:打开360杀毒软件,就是一个进程)是资源分配的单位(在任务管理器中,360杀毒软件就是一项,无论里面同时进行多少操作)线程一个程序可以同一时间并行执行多个线程(例如360杀毒可以同时全盘扫描、木马查杀、垃圾清理)线程作为调度和执行的单位,每个线程:拥有独立的运行栈和程序计数器,且彼此切换开销小多个线程:共享相同的内存单元(堆、方法区),访问相同的对象和变原创 2021-11-11 11:23:34 · 436 阅读 · 0 评论 -
Java五十一:变量、代码块、构造器、方法、内部类的调用权限全析
变量、代码块、构造器、方法、内部类的调用权限全析基:权限修饰符表权限字符作用体作用域公共public类、属性、方法、构造器、内部类用于整个工程内受保护的protected属性、方法、构造器、内部类不同包的子类中默认缺省用于同一个包内私有private属性、方法、构造器、内部类用于本类内部静态static属性、代码块、内部类、方法随着类的加载而加载非静态随着对象的加载而加载常量final类、属性、局部变量、原创 2021-08-30 19:32:08 · 137 阅读 · 0 评论 -
Java五十:类中各结构的调用顺序
静态代码块、非静态代码块及构造器的执行顺序第一步:类加载main()方法作为程序的主进口,当main方法运行时,不会先执行main方法中的代码,而是首先进行类的加载,包括本类与对应父类的加载。类加载时,静态代码块、静态属性、静态方法都会被同时加载加载时,静态代码块会同时执行,先执行父类的静态代码块,再执行子类(本类)的静态代码块加载过后,可以在main方法中不需要实例化对象,就可以马上直接调用类中的静态属性和静态方法第二步:执行main方法中的第一行代码第三步:类实例化为对象原创 2021-08-29 00:29:26 · 265 阅读 · 0 评论 -
Java四十九:设计模式的逐步完善
设计模式 在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式免去我们再思考和摸索,就像是经典的棋谱、不同的棋局。一、模式分类创建型模式,共5种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式结构性模式,共7种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、亨元模式行为型模式,共11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式二、单例模式(私原创 2021-08-29 00:27:24 · 87 阅读 · 0 评论 -
Java四十八:重写Object类的equals方法和toString方法
一、回顾 == 的使用:可以使用在基本数据类型变量和引用数据类型变量中如果比较的是基本数据类型变量,比较两个变量保存的数据是否相等。(不一定类型要相同,char和int也可以比)如果比较的是引用类型变量,比较两个对象的地址值是否相同,即两个引用是否指向同一个对象实体二、equals()方法的使用是一个方法,而非运算符只能适用于引用数据类型Object类中equals()的定义:public boolean equals ( Object obj ){ return原创 2021-08-29 00:26:12 · 538 阅读 · 0 评论 -
Java四十七:包装类、基本数据类型、String之间的转换
基本数据类型、包装类、String之间的转换一、基本数据类型和包装类之间的转换基本数据类型和包装类之间的对应关系基本数据类型包装类父类byteByteNumbershortShortNumberintIntegerNumberlongLongNumberfloatFloatNumberdoubleDoubleNumbercharCharacterbooleanBoolean基本数据类型 转原创 2021-08-29 00:23:49 · 125 阅读 · 0 评论 -
Java四十六:final关键字
一、final用来修饰:类、方法、变量修饰一个类:此类不能被其它类所继承 比如:String类、System类、StringBuffer类等final class A{}修饰一个对象:表明该对象的引用地址不变,但对象内部的属性可以变public class B{ final int[] arr1 = {1,2,3} public static void main(String[] args){ arr1[0] = 5;原创 2021-08-29 00:19:41 · 83 阅读 · 0 评论 -
Java四十四:MVC逻辑图
原创 2021-07-29 23:04:03 · 209 阅读 · 1 评论 -
Java四十三:Java基础知识体系思维导图
原创 2021-07-06 22:54:02 · 90 阅读 · 0 评论 -
Java四十二: 异常
异常与错误一、异常定义英文:Exception实际工作中,遇到的情况不可能是非常完美的,会遇到很多例外、意外的情况,这种就叫做异常。比如:你写的某个模块,用户输入不一定符合你的要求。你的程序要打开某个文件,这个文件可能不存在或者文件格式不对你要读取数据库的数据,数据可能是空的我们的程序在运行,结果内存或者硬盘可能满了在JavaAPI中已经定义了许多异常类,分为两大类,异常Exception和错误Error.二、异常分类: 异常发生在程序运行期间,影响正常的程序执行流程原创 2021-07-05 16:03:46 · 562 阅读 · 0 评论 -
Java四十一:类的内部成员之五:内部类
关于类的一些不太规范的操作一、成员内部类在一个public类的内部,类似于创建方法的方式,创建一个类,就叫做成员内部类成员内部类的类型可以是public,也可以不是成员内部类可以调用外部类的私有属性二、静态内部类就是成员内部类的类型加上static不能调用外部类的属性,因为静态属性在没有实例化之前就可以调用,而外部属性此时还没有被实例化,不能被静态类调用三、局部内部类写在方法内的类相当于局部属性四、匿名内部类 1.没有实例化对象的变量名,直接通过new 类名().来实例原创 2021-07-04 03:09:15 · 127 阅读 · 0 评论 -
Java四十: 接口
接口一、普通类、抽象、接口之间的联系与区别普通类:只有具体实现抽象类:具体实现和规范(抽象方法)都有接口 :只有规范!自己无法写方法~专业的约束!约束和实现分离:面向接口编程。二、接口接口关键字:interface接口就是规范: 定义的是是一组规则,体现了现实世界中”如果你是···则必须能···“的思想。 如果你是天使,就必须能飞;如果你似乎汽车,就必须能跑;如果你是好人,就必须干掉坏人···接口的本质是契约: 就像我们社会的法律一样,制定好之后大原创 2021-07-03 23:29:26 · 111 阅读 · 0 评论 -
Java三十九: 抽象类和抽象方法
抽象包括抽象类和抽象方法关键字:abstract一、抽象方法包含关键字abstract,只有方法名字+(),大括号等都没有抽象方法是个约束,不用去写,通过子类来去实现二、抽象类本质还是类,需要被继承,通过关键字extends,但是该关键字实现的是单继承,而且Java中没有多继承要想实现多继承的状态,就需要通过接口(后面去学习掌握)不能new这个抽象类,只能靠子类去实例化,但是该类中仍然有构造器三、抽象类和抽象方法之间的关系抽象类中可以有抽象方法和普通方法,但是包含有抽象方法的原创 2021-07-03 00:25:06 · 119 阅读 · 0 评论 -
Java三十八:static关键字综述
static类型的变量、方法及类的综述一、静态变量可以直接在类中的方法内调用可以通过 类名 . 静态变量名 调用可以被类中的所有实例去共享,在多线程中使用,现阶段不太理解非静态变量只能通过实例化后使用二、静态方法静态方法可以直接调用静态方法,它随着类一起被加载可以用类名直接调用非静态方法必须通过实例化对象调用,因为其没有随着类的创建而被加载三、静态、匿名代码块及构造器在类被创建的时候,除了构造器,还有静态代码块和代码块被一同创建。在类被原创 2021-07-02 15:26:08 · 173 阅读 · 0 评论 -
Java三十七:Java 面向对象三大特性之三 多态
多态多态:就是同一方法可以根据发送对象的不同而采用多种不同的行为方式,可以是程序更加灵活 多态,可以实现一个动态编译。 对象类型,在执行的时候才去确定,在写代码的时候觉决定不了,所以在大型系统创建的时候,为了方便,就需要对象类型的可扩展性,而通过多态,可以使可扩展性变得更强。 多态可以使我们在写代码的时候不用关心方法处于一个什么样的状态。一、多态注意事项1、多态是方法的多态,属性没有多态2、父类和子类,之间有联系,才可以转换,否则就会出现类型转换异常!ClassCastExceptio原创 2021-07-02 08:23:51 · 94 阅读 · 3 评论 -
Java三十六:Java面向对象三大特征之二 继承
继承本质是对某一批类的抽象,从而实现对现实世界更好的建模extends:扩展Java中类只有单继承,没有多继承继承是类和与类之间的一种关系,除此之外,类和类之间还有依赖、组合、聚合等关系。继承关系的两个类:子类(派生类);父类(基类)Java中类只有单继承,没有多继承继承是类和与类之间的一种关系,除此之外,类和类之间还有依赖、组合、聚合等关系。继承关系的两个类:子类(派生类);父类(基类)一、不同类型的继承特点 1、public :主要针对方法;子类继承了原创 2021-06-29 22:15:45 · 111 阅读 · 5 评论 -
Java三十五:Java 面向对象三大特征之一 封装
封装一、封装的本质1、该露的露,该藏的藏 我们程序设计要追求“高内聚,低耦合”。 高内聚:就是类的内部数据操作细节自己完成, 不允许外部干涉; 低耦合:仅暴露少量的方法给外部使用。2、 封装(数据的隐藏) 通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。记住: 属性私有,使用get()/set()进行调用二、封装的意义 1、提高程序的安全性,保护数据 2、隐藏代码的实现细节原创 2021-06-29 22:14:42 · 84 阅读 · 0 评论