Java基础学习总结
zzd2018
笔记、总结与感悟
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java异常的分类的名字说明
Java的异常通常分为已检查异常(checked异常)和未检查异常(unchecked异常)。我以前一直不理解为何要这样叫。但是现在有点头绪。具体就是:写代码的时候,有些IOException我们的编译器能够检测到的,所以说叫checked异常,写代码的时候空指针异常时检测不到的,所以叫unchecked异常。所以说,这个已检查和未检查是对于编译器而言的,编译器编译过程中能检查出来的异常就是已检查异常,于是就让你必须写上对应的异常处理逻辑。编译器编译过程中不能检查出来的异常就是未检查异常。...原创 2020-08-30 22:21:47 · 406 阅读 · 0 评论 -
Optional类
Optional类也是Java8的一个新内容。到目前为止,臭名昭著的空指针异常是导致Java应用程序失败的最常见原因。 以前,为了解决空指针异常,Google公司著名的Guava项目引入了Optional类, Guava通过使用检查空值的方式来防止代码污染,它鼓励程序员写更干净的代 码。受到Google Guava的启发,Optional类已经成为Java 8类库的一部分。 Optiona...原创 2020-05-06 20:33:49 · 241 阅读 · 0 评论 -
Stream API相关内容
Java8中有两大最为重要的改变。第一个是 Lambda 表达式;另外一个则是 Stream API。先说说我自己的感受:Stream API其实也是语法糖,它简化了Java语言中对集合数据进行操作的复杂度。我自己对于这个JDK1.8的新的API只是要求能看懂就行了,别到时候看到相关代码一脸懵逼就行。。。要我经常写应该不太可能。。。Stream 是 Java8 中处理集合的关键抽象概念,它...原创 2020-05-06 20:24:46 · 184 阅读 · 0 评论 -
方法引用
其实,方法引用是lambda表达式的语法糖(lambda表达式本身也是语法糖)。方法引用(Method References)当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用! 方法引用可以看做是Lambda表达式深层次的表达。换句话说,方法引用就 是Lambda表达式,也就是函数式接口的一个实例,通过方法的名字来指向 一个方法,可以认为是Lambda表达式的一个...原创 2020-05-02 23:46:48 · 384 阅读 · 1 评论 -
lambda表达式与函数式接口
Java 8 新特性如下图所示,其中最重要的两个新特性是:Lambda表达式和Stream API。Lambda表达式Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更 灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。Lambda表达式的本质:作为函数式接口的实例。...原创 2020-05-02 23:33:09 · 530 阅读 · 0 评论 -
动态代理与静态代理
代理设计模式的原理:使用一个代理将对象包装起来, 然后用该代理对象取代原始对象。任何对原 始对象的调用都要通过代理。代理对象决定是否以及何时将方法调用转到原 始对象上。 静态代理,特征是代理类和目标 对象的类都是在编译期间确定下来,不利于程序的扩展。同时,每一个代理类只能为一个接口服务,这样一来程序开发中必然产生过多的代理。最 好可以通过一个代理类完成全部的代理功能。 动态代理是指客户通...原创 2020-04-30 22:17:17 · 167 阅读 · 0 评论 -
Java反射相关内容
先开一篇反射相关的笔记,看完视频后才详细写。总之,现在我对反射的印象就是:功能很强大,很自由,有点C++的感觉,但是就是单纯的调API。。。原创 2020-04-28 22:04:42 · 222 阅读 · 0 评论 -
Java的IO流体系
原创 2020-04-26 21:53:50 · 249 阅读 · 0 评论 -
Java泛型的查漏补缺
因为之前已经学习过了Java泛型,具体内容在:Java核心技术 卷1 第十二章总结。现在再补充一下泛型的内容,巩固一下基础知识。泛型的概念(Generic)所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类 型或者是某个方法的返回值及参数类型。这个类型参数将在使用时(例如, 继承或实现这个接口,用这个类型声明变量、创建对象时)确定(即传入实 际的类型参数,也称为类型实参...原创 2020-04-26 21:46:56 · 194 阅读 · 0 评论 -
Java的注解(Annotation)相关内容
从 JDK 5.0 开始, Java 增加了对元数据(MetaData) 的支持, 也就是 Annotation(注解) 。Annotation 其实就是代码里的特殊标记, 这些标记可以在编译, 类加 载, 运行时被读取, 并执行相应的处理。通过使用Annotation, 程序员 可以在不改变原有逻辑的情况下, 在源文件中嵌入一些补充信息。代 码分析工具、开发工具和部署工具可以通过这些补充信息...原创 2020-04-16 22:15:59 · 158 阅读 · 0 评论 -
Java枚举类型——enum
枚举类的实现 :JDK1.5之前需要自定义枚举类 JDK 1.5新增的 enum 关键字用于定义枚举类我感觉,这个enum关键字只是一个语法糖,也就是方便了枚举类型的创建。因为单纯用创建类型的语法也是可以创建枚举类型的。使用说明使用 enum 定义的枚举类默认继承了 java.lang.Enum类,因此不能再继承其他类 枚举类的构造器只能使用 private 权限修饰符 ...原创 2020-04-16 19:56:48 · 158 阅读 · 0 评论 -
Java比较器——Comparable接口和Comparator接口
在Java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题。因为Java不像C++那样可以重载运算符,所以是不能直接用>或<运算符对Java对象进行比较的。因此,Java对象要比较大小只能调用相关方法。于是,Java实现对象排序的方式有两种:自然排序:java.lang.Comparable 定制排序:java.util.Comparator。自然排序:java...原创 2020-04-16 14:48:57 · 214 阅读 · 0 评论 -
String、StringBuffer、StringBuilder三者的异同
String、StringBuffer、StringBuilder三者的异同? String:不可变的字符序列;底层使用char[]存储 StringBuffer:可变的字符序列;线程安全的,效率低;底层使用char[]存储,线程安全通过同步方法实现 StringBuilder:可变的字符序列;jdk5.0新增的,线程不安全的,效率高;底层使用char[]存储源码...原创 2020-04-15 16:50:41 · 135 阅读 · 0 评论 -
Java的String类的内存存储
String类:代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作 为此类的实例实现。String是一个final类,代表不可变的字符序列。字符串是常量,用双引号引起来表示。它们的值在创建之后不能更改。String对象的字符内容是存储在一个字符数组value[]中的。public final class String implements java.io...原创 2020-04-14 22:20:00 · 302 阅读 · 0 评论 -
Java核心技术 卷1 第三章总结
这章主要就介绍Java的基本程序设计结构,比较基础,我就记下我认为重要和我以前不知道的知识。不过,我认为关于char类型的讨论比较重要,也就是与其他语言很不同,我打算另写一篇文章来总结。1.Java是纯面向对象语言,应用程序中的全部内容都必须放置在类中。2.源代码的文件名必须与公共类的名字相同,并用.java作为扩展名。这就说明一个Java文件最多有一个public的类(可以没有),如果...原创 2018-11-19 22:20:31 · 249 阅读 · 0 评论 -
Java对象构造的流程说明
Java中,创建对象时,调用构造器的具体处理步骤:所有数据域被初始化为默认值(0、false或null)。 按照在类声明中出现的次序,依次执行所有域初始化语句和初始化块。 如果构造器第一行调用了第二个构造器,则执行第二个构造器主体。 执行这个构造器的主体。而对于静态域的初始化,则是如下的处理步骤:在类的第一次加载的时候,将会进行静态域的初始化。与实例域一样,除非将它们显式的设置成其他值...原创 2018-11-22 20:22:05 · 390 阅读 · 0 评论 -
Java中的包(package)和类路径的说明
我看书的时候,有个疑问,写在最前面记录一下。书中是这么说的,编译器在编译源文件的时候不检查目录结构。例如,假定有一个源文件开头有下列语句: package com.mycompany; 即使这个源文件不在子目录com/mycompany下,也可以进行编译。如果它不依赖于其他包,就不会出现编译错误。但是,最终的程序将无法运行,这是因为虚拟机找不到类文件。(对于这部分我...原创 2018-11-22 21:46:19 · 9493 阅读 · 1 评论 -
Java 中的 char类型和字符串编码解析
首先,我配上一张图,可以很好的解释问题: 这张图表明,不论java文件是什么字符编码的,经过编译器编译后,字符在class文件中都会变成UTF-8编码,实际上是一种modified UTF-8,modified utf-8是java对utf-8作了修改的版本。 后面,当JVM把这个class文件载入内存后,就会把字符转换为UTF-16编码存放在内存中。因此,在运行时,内存...原创 2018-11-20 12:39:52 · 1571 阅读 · 0 评论 -
Java核心技术 卷1 第五章总结
这本书的第五章主要探讨Java中的继承机制,还阐述了反射(reflection)的概念(我打算另写一篇文章说明,还没想好怎么写。。)。1.Java用关键字extends表示继承。在Java中,所有的继承都是公有继承,而没有C++中的私有继承和保护继承。2.超类(superclass)和子类(subclass)是Java程序员最常用的两个术语。3.子类可以覆盖(override)超类中的...原创 2018-11-28 22:06:54 · 236 阅读 · 0 评论 -
Java核心技术 卷1 第六章总结
这本书的第六章主要讲述了接口和内部类。我觉得这两个机制比较高级,目前只是了解一下,所以只是记录一下知识点。以后项目中用到时再细细研究吧。1.在Java中,接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。2.接口中方法的修饰符是public abstract,属性的修饰符是public static final。这些修饰符写与不写都一样。默认的。3.内部类...原创 2018-12-02 21:19:28 · 450 阅读 · 0 评论 -
Java中的修饰符
类修饰符有:public、final和abstract。还有就是默认不写(包访问控制)。(注意没有protected和private,还有不能继承不同包的非public类,因为无法访问。)还有,对于内部类,可以用static和private修饰。使用static来修饰一个内部类,则这个内部类就属于外部类本身,而不属于外部类的某个对象。称为静态内部类(也可称为类内部类),这样的内部类是类级别...转载 2018-11-28 17:43:29 · 325 阅读 · 0 评论 -
Java核心技术 卷1 第十二章总结
这章的标题就是泛型程序设计,所以很显然就是讲Java的泛型机制的。我觉得这个机制是Java一个非常重要的机制,这里我不讲怎样很好的使用,只总结一下书中的内容,并且说一下我个人的理解。1.使用泛型机制编写的程序代码要比那些杂乱地使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性。2.泛型程序设计(Generic programming)意味着编写的代码可以被很多不...原创 2018-12-05 22:22:55 · 480 阅读 · 0 评论 -
Java核心技术 卷1 第四章总结
1.面向对象程序设计(OOP)是当今主流的程序设计范型,它已经取代了20世纪70年代的“结构化”过程化程序设计开发技术。传统的结构化程序设计通过设计一系列的过程(即算法)来求解问题。名言——算法+数据结构=程序,就是对面向过程程序设计的经典总结。在这种设计范式中,算法是第一位的,数据结构是第二位的,也就是首先要确定如何操作数据,然后再决定如何组织数据,以便于数据操作(我觉得这句话说出了数据结构的本...原创 2018-11-22 12:21:10 · 306 阅读 · 0 评论
分享