随笔分类 - Java基础随笔
记录Java的基础部分的学习
摘要:推荐阅读:https://www.cnblogs.com/wangjzh/p/5258254.html 一、内存结构图 先导知识: 一个 Java 源程序文件,会被编译为字节码文件(以 class 为扩展名),每个java程序都需要运行在自己的JVM上,然后告知 JVM 程序的运行入口,再被 JVM
阅读全文
摘要:一、Optional容器类 这是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。 查看结构图可以看到有如下常用方法: of(T)——创建一个非空的Optional实例(使用empty创建一个空的Optional实例) ofNulla
阅读全文
摘要:一、强大的Stream API 除了Lambda表达式外,Java8另外一项重大更新便是位于java.util.stream.*下的Stream API Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对 集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。 使用S
阅读全文
摘要:一、Java8新特性概述 1.Lambda 表达式 2. 函数式接口 3. 方法引用与构造器引用 4. Stream API 5. 接口中的默认方法与静态方法 6. 新时间日期 API 7. 其他新特性 // 其他例如HashMap在JDK8中的提升,将会在HashMap的章节进行拓展 二、Lamb
阅读全文
摘要:一、什么是内部类 将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类 内部类所在的类在编译成功后,会出现这样两个class文件:OuterClass.class和OuterClass$InnerClass.class。 内部类主要分为四种: 成员内部类、局部内部类、匿名内部类、静态内部类
阅读全文
摘要:一、概述 引自百度百科: 定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。 二、JDK内置注解 Java提供了三种内
阅读全文
摘要:一、使用枚举类之前是如何实现枚举的 在JDK1.5之前,我们定义常量都是:public static fianl....;定义枚举也可以通过如下的方式: 可以看到,主要是通过私有化构造器,然后在内部创建对象实现对象可以枚举的(这也是一个普通的类,本质和平时写的类没根本区别) 测试代码: 二、使用JD
阅读全文
摘要:一、网络编程概述 概述: Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序。 Java提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个跨平
阅读全文
摘要:一、标识符 1.不能使用数字开头 2.不能使用关键字 (更多命名规范,参见基础加强随笔) 二、数据类型 主要分为四种: 整形: byte 1字节8位 范围 -128~127 short 2字节16位 范围 -32768~32767 int 4字节32位 范围 -2^31-1~2^31 long 8字
阅读全文
摘要:一、NIO非阻塞式网络通信 1.阻塞与非阻塞的概念 传统的 IO 流都是阻塞式的。也就是说,当一个线程调用 read() 或 write() 时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不 能执行其他任务。因此,在完成网络通信进行 IO 操作时,由于线程会 阻塞,所以服务器端必须
阅读全文
摘要:一、概述 1.什么是NIO NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。 在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO 更多介绍与全面概述
阅读全文
摘要:一、缓冲流的使用 每个字节流都有对应的缓冲流: BufferedInputStream / BufferedOutputStream 构造器: 方法摘要与对应节点流类似 使用缓冲流实现文件复制:实际中也是;其中流的关闭只需要关闭缓冲流,内部嵌套的字节流会自动关闭。 @Test public void
阅读全文
摘要:注:以下源码均为JDK8的源码 一、 核心属性 基本属性如下: 核心的属性其实是红框中的两个: //从注释也容易看出,一个是集合元素,一个是集合长度(注意是逻辑长度,即元素的个数,而非数组长度) 其中:transient指明序列化时请忽略。 二、构造器 一共有3个构造器: 1.构造指定容量的Arra
阅读全文
摘要:什么叫类加载 JVM把 .class 字节码文件加载到内存,并进行相关的校验、解析、初始化,最终转换为虚拟机可用的JAVA类型的过程,称为JVM类加载机制。 (当然,JVM并不关心class文件的来源,什么?什么叫class文件?——每一个Java class文件都对一个Java类或者Java接口做
阅读全文
摘要:如果有机会,请尝试Java8中全新的时间日期API!(参见Java8新特性随笔) 如果还是使用Java7及之前的版本,那么你可以尝试一些工具类(参考使用工具类相关的Hutool-DateUtil) 如果又不能升级JDK,又无法引入第三方依赖库,那么你可以需要了解以下的时间日期相关的API(无奈之举)
阅读全文
摘要:一、反射是什么 反射机制是在运行状态中, 对于任意一个类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能够调用它的任意一个方法和属性; 这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 二、反射能做什么 在运行时判断任意一个对象所属的类; 在运行时构造任意一个类
阅读全文
摘要:一、为什么需要泛型? 1.集合元素存储时候的安全性 2.集合元素取出时候的强转问题 主要内容: 泛型在集合中的使用 自定义泛型类、泛型接口、泛型方法 泛型与继承的关系 通配符 二、泛型(Generic)的几个术语: 对于List<User> 和List<T> 整个List<T> 泛型类型 List<
阅读全文
摘要:一、什么是正则表达式 正则表达式(Regular Expression):强大的文本处理工具。 模式匹配和替换的强大工具。 linux中主要通过 grep 来发挥正则表达式(以行为单位)的强大功能! 注意,这里的*等表示的是量词单位,不是之前提到的通配符,在正则表达式里请不要与通配符混淆! 二、正则
阅读全文
摘要:一、注释格式分类: 1、单行(single-line)注释://…… 2、块(block)注释:/*……*/ 3、文档注释:/**……*/ javadoc有如下: 二、加注释的场景: 1. 基本注释(必须加) (a)类(接口)的注释 (b)构造函数的注释 (c)方法的注释 (d)全局变量的注释 (e
阅读全文
摘要:一、概述 Java中的集合框架主要分为两大派别:Collection 和 Map —— 位于util包下 类的基础关系图如下(图片来自百度) 常用: List——有序可重复 Set——无序不可重复 Map——key-value键值对的形式 完整家谱: / 常用API可以查阅JDK API(IDEA中
阅读全文