【【Java学习笔记】新的开始】教程文章相关的互联网学习教程文章

Java学习笔记(基础二)【代码】【图】

数组 基本了解Java 语言中提供的数组是用来存储固定大小的同类型元素 数组(array)是多个相同类型的数据按照一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行同一的管理 数组是引用数据类型,但是数组中的元素可以是任意的数据类型 创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的时这块内存空间中的首地址 数组的长度一旦确定就不可更改基本使用声明:dataType[] arrayRefVar; (推荐的方式...

java 14 HashMap 源码学习笔记【代码】

1. TREEIFY_THRESHOLD 常量为什么是 8 ? 参考 https://www.cnblogs.com/linghu-java/p/10598758.html https://www.v2ex.com/t/651978 1.1 为什么要从链表转成红黑树 链表查找性能是O(n),而树结构能将查找性能提升到O(log(n)) 1.2 为什么一开始不用红黑树当链表长度很小的时候,即使遍历,速度也非常快,但是当链表长度不断变长,肯定会对查询性能有一定的影响,所以才需要转成树。 TreeNodes占用空间是普通Nodes的两倍,所以只有...

JavaSE学习笔记 - Object类、日期类【代码】

ObjectObject 类是 Java 中所有类的超类,Java 中每个类都是由 Object 这个类拓展而来的。可以使用 Object 类型的变量引用任何类型的对象。 Object是类层次结构的根类,每个类都是使用 Object 类作为超类。Object 可以对 toString() 和 equals() 方法。我们在打印对象的时候打印是对象调用 toString() 的结果。toString() 的重写:toString() 源码 :toString() 方法默认返回结果是地址值,但是在开发中,我们常常需要查看对象属性...

JavaSE学习笔记 - 数字类、随机数【代码】

BigInteger import java.math.BigInteger;public class Main {public static void main(String[] args) {//加BigInteger ans = BigInteger.ONE;for (int i = 0; i < 1000; i++) {ans = ans.add(BigInteger.valueOf(i));}System.out.println(ans);//减ans = BigInteger.ZERO;for (int i = 0; i < 1000; i++) {ans = ans.subtract(BigInteger.valueOf(i));}System.out.println(ans);//乘ans = BigInteger.ONE;for (int i = 1; i < 10...

JavaS学习笔记 - String类【代码】【图】

String字符串一旦创建就不可改变 带有双引号的字符串在字符串常量池中存储 字符串比较时需要使用 equals 方法,String 类重写了 equals 和 toString 方法创建字符串 public class Main {public static void main(String[] args) {String str = "abc";String string = new String("abc");String string1 = new String("bcd");} }内存图分析拼接 public class Main {public static void main(String[] args) {String str = "abcdefg"...

JavaSE学习笔记 - 异常处理机制【代码】【图】

程序在执行的过程中出现非正常的情况,最终导致 JVM 非正常停止。异常在 Java 中以类的形式存在,每一个异常类都可以创建对象,在产生异常的时候就是创建了一个异常类的对象,然后将异常对象抛出。public class Main {public static void main(String[] args) {NullPointerException exception = new NullPointerException("空指针异常");System.out.println(exception);//java.lang.NullPointerException: 空指针异常} }异常继承结...

JavaSE学习笔记 - Collection集合【代码】【图】

集合是一种容器,可以用来存储对象。在数组中存储对象是长度一旦确定是不能改变的,但是集合的长度是可变的。 集合中存储的都是 Java 对象的引用,集合不能存储基本数据类型。集合继承结构图Collection单列集合类的父接口public class Main {public static void main(String[] args) {Collection<String> collection = new ArrayList<>();collection.add("abc");collection.add("abc");collection.add("bcd");Object[] objs = coll...

JavaSE学习笔记 - Map集合【代码】【图】

Map 继承结构图MapMap 集合为双列集合,集合中不能包含重复的键,但是值可以重复,并且每一个键只能对应一个值。常用方法 public class Main {public static void main(String[] args) {Map<Integer, String> map = new HashMap<>();map.put(1, "a");map.put(3, "b");map.put(2, "c");System.out.println(map);//{1=a, 2=c, 3=b}System.out.println(map.get(3));//b//这里需要注意,如果是自定义类型我们需要重写hashCode和equals方...

JavaSE学习笔记 - 反射技术【代码】

概述反射是一种强大的工具,可以用来编写能够动态操纵 Java 代码的程序,通过反射机制我们可以操作字节码文件。反射机制将类的各个部分封装成了对象,在程序运行的过程中我们可以操作这些对象(在操作一个类对象的时候我们可以操作其方法成员变量等)。这样可以使得程序解耦,提高了程序的可扩展性。Java 代码的三个阶段源代码阶段:编写类文件,然后添加成员变量,成员方法等,代码编译后生成字节码文件,此时代码还未被加载进内存。...

JavaSE学习笔记 - I/O流详解【代码】【图】

I/O 概述 ??I/O流:对硬盘文件进行读写,输入流就是将硬盘文件的内容读入到内存中使用,输出流就是将内存中的数据读入到硬盘文件中,以便于长期保存。文件是由字符或者字节构成的,所以可以进行写入和读取。所有的文件数据都是以二进制数字的形式保存,都是一个一个的字节,在传输的时候也是以二进制的形式进行数据的传输。 字节流继承结构图字符流继承机构图字节流 OutputStream 与 FileOutputStream(文件流) ??OutputStream:所有...

JavaSE学习笔记 - Java基础语法【代码】【图】

Java语言特性简单性:Java 中真正操作内存的是 Java 虚拟机,Java 虚拟机通过运行 Java 程序来操作内存,而 C++ 都是通过指针来操作内存,Java 程序中不能直接操作指针,所以在 Java 中不容易导致内存泄漏,所以变得简单。 Java 是完全面向的对象的语言:万物皆对象 健壮性:Java 编译器能够检测许多在其他语言中仅仅在运行时检测出来的问题。Java 有自动垃圾回收回收机制( GC 机制),不容易导致内存泄漏。 支持多线程 可移植性:编...

JavaSE学习笔记 - 面向对象基础【代码】【图】

面向对象面向对象特点:封装性、继承性、多态性、(抽象性) 面向对象:不关心具体的步骤,具体的步骤已经由某一个对象完成,考虑哪一个对象完成了这个事情,找到这个对象来做某一件事情。 面向过程:需要考虑具体的过程,要自己考虑每一步的实现过程,考虑怎么去做。 类和对象:创建类,设计类的属性;创建类的对象;通过 "对象.属性","对象.方法"调用对象的结构,功能。 万物皆对象:在 Java 语言范畴中,我们将功能、结构等封装到...

Java学习笔记(长期更新)

初识Java 初识Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。 Java可运行于多个平台,如Windows, Mac OS,及其他多种UNIX版本的系统。简介Java分为三个体系:JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版) JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版) JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。2005年6月,JavaOne大会召开,SUN公司公开Ja...

Java基础:枚举学习笔记【代码】【图】

枚举 概述 枚举(enumeration)是Java1.5引入的新特性,枚举类是一种特殊的类class,通过关键字 enum 来定义。之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。 枚举的特性枚举类的构造方法强制被私有化,即枚举类不能实例化 所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类 每个枚举变量都是枚举...

Java8新特性学习笔记-CompletableFuture【代码】

目录代码 代码 package test;import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class CompletableFutureTest {private static ExecutorService executorService = Executors.newFixedThreadPool(8);public static void main(String[] args) throws InterruptedException {// 创建异步执行任务:CompletableFuture<Double> completedFut...