Java 学习笔记
文章平均质量分 84
记录Java学习的整个过程,按照目录展开,包括基础知识,进阶知识,随着后续的不断深入学习会不断补充所学内容。
南淮北安
好好学习
展开
-
Java 学习一篇文章就够了 (珍藏版)
1. IntelliJ IDEA 运行 Java 程序的前期配置原创 2020-10-27 16:11:59 · 2527 阅读 · 3 评论 -
Map补充:map遍历方法和computeIfAbsent()方法
文章目录一、Map 的遍历二、map.computeIfAbsent()方法一、Map 的遍历(1)使用 Iterator 输出 Map 实例public class Test{ public static void main(String[] args) { Map<String,String > map = new HashMap<String, String>();//实例化 map map.put("2","Java");原创 2022-04-09 14:49:56 · 829 阅读 · 0 评论 -
一篇文章带你搞懂 Java 中数组长度为 0 和数组为 null 的区别
编程题中经常遇到,对于数组首先判断:private static void test(int[] a) { if (a == null || a.length==0) { return; } }常见的形式有三种:语句1:int[] a; //只是声明了一个数组变量,并未初始化,无法使用。语句2:int[] a = null;//声明了一个数组变量,赋值为 null;语句3:int[] a = new int[0];//声明并创建一原创 2020-11-21 16:00:32 · 1564 阅读 · 3 评论 -
一篇文章带你搞定官方推荐 Stack 的替代品 双端队列 Deque
Deque是一个双端队列接口,继承自Queue接口,Deque的实现类是LinkedList、ArrayDeque、LinkedBlockingDeque,其中LinkedList是最常用的。Java堆栈Stack类已经过时,Java官方推荐使用Deque替代Stack使用。Deque堆栈操作方法:push()、pop()、peek()Deque有三种用途:(1)普通队列(一端进另一端出): Queue queue = new LinkedList()或Deque deque = new Link转载 2020-09-29 21:50:49 · 2892 阅读 · 0 评论 -
(Java)一篇文章带你搞定 LinkedHashMap 与 HashMap 的区别
已经学习过:Java 中的 Map 接口了解了 HashMap 是无序存放,但是有些情况下我们想要有顺序的存储 key-value ,这时就用到了 LinkedHashMap已经知道了 HashMap 是无序存储:public class Test { public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>();原创 2020-09-13 17:16:17 · 1123 阅读 · 0 评论 -
一篇文章带你学会 IDEA 使用中的技巧(珍藏篇)
仅收录了自己平时经常会使用到的快捷键,后续随着使用会补充,对于冷门不常见的并没有写入,欢迎大家留言补充自己使用 IDEA 过程中的奇技淫巧。文章目录一、常规快捷键二、其他快捷设置三、常用的后缀编码技巧四、查看源码快捷键一、常规快捷键快捷键含义Ctrl+R替换文本Ctrl+F查找文本Ctrl+Alt+L格式化代码Alt+Insert可以生成构造器/Getter/Setter等Ctrl+D复制行Ctrl+/或Ctrl+Shift+/注释(//或原创 2020-07-03 09:49:20 · 2100 阅读 · 3 评论 -
(超实用)IDEA 修改 JAVA/HTML/XML 等文件的默认单行注释方式
注释快捷键:Ctrl + /原先的样式是:我们想要的样式是,注释对齐语句,和注释的语句对齐:打开 IDEA进入 File 下的 Settings(1)修改Java 的单行注释:(2)修改HTML 的单行注释:(3)修改 XML 的单行注释:(4)对于json,jsp等修改方式相同,都是取消 Line comment at first column 的勾选...原创 2020-06-14 19:13:04 · 3981 阅读 · 15 评论 -
一篇文章帮你搞定 IntelliJ IDEA 运行 Java 程序的前期配置
文章目录一、配置 Project Structure二、IntelliJ IDEA 基本设置一、配置 Project Structure二、IntelliJ IDEA 基本设置点击参考原创 2019-10-19 10:10:38 · 9759 阅读 · 0 评论 -
(Java)第 1 章 认识Java
文章目录一、知识点二、编码注意一、知识点Java 实现可移植性靠的是 JVM,JVM 就是一台虚拟的计算机,只要在不同的操作系统上植入不同版本的JVM,那么Java程序就可以在各个平台上移植,做到“一次编写,处处运行”Java中程序的执行步骤为:(1)使用javac 将一个*.java 文件编译成*.class 文件(2)使用Java 可以执行一个 *.class 文件每次使用 ja...原创 2019-10-19 15:31:42 · 589 阅读 · 1 评论 -
(Java)第 2 章 简单的 Java 程序
文章目录一、定义一个简单类二、Java程序的注释三、其他要点一、定义一个简单类package Chapter_Two;public class TestJava { public static void main(String[] args) { int num = 10; num = 30; System.out.println("n...原创 2019-10-19 21:41:42 · 416 阅读 · 0 评论 -
(Java)第 3 章 Java 基础程序设计
文章目录一、基本数据类型1. 基本数据类型的使用2. 转义字符的使用3. 基本数据类型的默认值4. 数据类型的转换5. 数据类型的强制转换二、运算符、表达式与语句1. 关系运算符2. 逻辑运算符3. 位运算一、基本数据类型1. 基本数据类型的使用如果想要表示整数就使用 int (例如:表示一个人的年龄),表示小数就使用 double(例如:表示一个人的成绩或者是工资);如果描述日期数字或...原创 2019-10-22 17:36:41 · 477 阅读 · 1 评论 -
(Java)第 4 章 数组与方法:数组的定义及使用
文章目录一、一位数组二、数组的静态初始化三、二维数组一、一位数组一位数组的声明与分配内存数据类型 数组名称[] = null; //声明数组数组名称 = new 数据类型[长度]; //分配内存给数组数组声明的另外一种形式:数据类型[] 数组名称 = null; //声明一维数组声明数组的同时分配内存:数据类型 数组名[] = new 数据类型[个数];示例:int sc...原创 2019-10-22 19:22:59 · 464 阅读 · 1 评论 -
(Java)第 4 章 数组与方法 – 方法的声明及使用(新特性)
文章目录一、方法的定义二、方法的重载三、数组的引用传递四、Java 新特性对数组的支持一、方法的定义public static 返回值类型 方法名称(类型 参数1,类型 参数2,...){ 程序语句; [return 表达式]}方法和函数的关系:这两者是同样的概念,只是在面向对象的语言中常称为方法,面向过程的语言中常称为函数方法命名规范要求:在定义类时,要求全部单词的首字母必须...原创 2019-10-23 19:43:59 · 416 阅读 · 3 评论 -
一篇文章带你搞懂 Java 面向对象的基本概念
文章目录一、面向过程和面向对象的概念二、面向对象的三个主要特性一、面向过程和面向对象的概念二、面向对象的三个主要特性封装性:继承性:多态性:...原创 2019-10-24 22:04:55 · 426 阅读 · 0 评论 -
(Java)类与对象
文章目录一、类与对象的关系二、类的定义三、对象的创建及使用四、创建多个对象五、关于垃圾空间的释放一、类与对象的关系二、类的定义类是由属性和方法组成的属性中定义类需要的一个个具体信息,实际上一个属性就是一个变量,二方法是一些操作的行为class 类名称{ 数据类型 属性; ..... public 返回值的数据类型 方法名称(参数 1,参数 2...){ 程序语句; }}...原创 2019-10-25 09:20:30 · 431 阅读 · 0 评论 -
(Java)封装性
文章目录一、封装性二、注意一、封装性所谓的封装性就是指对外部不可见为属性封装:private 属性类型 属性名称;为方法封装:private 方法返回值 方法名称(参数列表){}为程序加上封装性:class Person{ private String name; private int age; public void tell(){ Sys...原创 2019-10-25 20:46:38 · 908 阅读 · 1 评论 -
(Java)构造方法
上节的封装性发现实例化一个类的对象之后,如果为这个对象中的属性赋值,必须通过 setter() 方法才可以实际上可以通过构造方法来完成这样的操作,构造方法最主要的作用就是为类中的属性初始化文章目录一、构造方法二、构造方法的重载一、构造方法class 类名称{ 访问权限 类名称(类型1 参数1,类型2 参数2,...){ 程序语句; ... //构造方法没有返回值 }}注意:...原创 2019-10-25 21:28:21 · 327 阅读 · 1 评论 -
一篇文章带你搞定 Java 中的匿名对象和实例讲解
文章目录一、匿名对象实例讲解一、匿名对象匿名对象就是没有明确给出名字的对象,一般匿名对象只使用一次,而且匿名对象只在堆内存中开辟空间,而不存在栈内存的引用class Person{ private String name; private int age; public Person(String name,int age){ //定义构造方法为属性初始化 ...原创 2019-10-26 09:19:58 · 677 阅读 · 2 评论 -
(Java)String 类(一)
文章目录一、实例化 String 类对象二、String 对象的内容比较三、String 类两种对象实例化方式的区别四、常见面试题分析一、实例化 String 类对象直接为 String 赋值public class Test{ public static void main(String[] args) { String name = "Java"; // 实例...原创 2019-10-28 08:45:53 · 417 阅读 · 0 评论 -
(Java)String 类(二)
文章目录一、字符串的内容不可改变二、String 类中常用方法(1)字符串与字符数组的转换(2)从字符串中取出指定位置的字符(3)字符串与 byte 数组的转换(4)取得一个字符串的长度(5)查找一个指定的字符串是否存在一、字符串的内容不可改变字符串的内容一旦声明则不可改变public class Test{ public static void main(String[] args...原创 2019-10-28 16:08:12 · 375 阅读 · 0 评论 -
(Java)引用传递及基本应用
文章目录一、引用传递分析一、引用传递分析所谓的引用传递就是指将堆内存空间的使用权交给多个栈内存空间引用传递范例(1)public class Test{ public static void main(String[] args) { String str1 = "hello"; System.out.println(str1); ...原创 2019-10-30 09:31:12 · 439 阅读 · 0 评论 -
一篇文章带你搞定 Java 中的 this 关键字
文章目录一、使用 this 调用本类中的属性二、使用 this 调用构造方法三、this 表示当前对象一、使用 this 调用本类中的属性class Person{ private String name; private int age; public Person(String name,int age){ name = name; // 此处是哪个...原创 2019-10-31 18:39:09 · 298 阅读 · 0 评论 -
一篇文章带你搞定 Java 中的 static 关键字
文章目录一、使用 static 声明属性二、使用 static 声明方法三、static 的相关应用四、理解 main() 方法五、Java 中常用的内存区域一、使用 static 声明属性如果在程序中使用 static 声明属性的话,则此属性称为全局属性(或者静态属性)class Person{ String name; int age; String countr...原创 2019-11-01 19:58:43 · 333 阅读 · 1 评论 -
一篇文章带你搞定 Java 中代码块的学习(普通代码块/构造代码块/静态代码块)
文章目录一、普通代码块二、静态代码块三、静态代码块一、普通代码块普通代码块就是直接在方法或语句中定义的代码块public class Test{ public static void main(String[] args) { { int x = 30; System.out.println("普通代码块:x = " +...原创 2019-11-04 18:44:14 · 348 阅读 · 0 评论 -
(Java)构造方法私有化
不只是可以对属性进行封装,对方法其实也是可以封装的,这其中就包括了对构造方法的封装class Singleton{ private Singleton{ // 此处对构造方法进行封装 } public void print(){ // 打印信息 System.out.println("Hello World !!!") }}我们已知一个类要想使用,就必须有实例化对象的产生,...原创 2020-01-01 10:27:00 · 1225 阅读 · 0 评论 -
(Java)关于 public static void main(String[] args) 的理解
在 Java 里我们会经常见到:public static void main(String[] args) { //}那么它到底代表什么意思呢?(1)public:表示此方法可以被外部调用(2)static:表明方法是静态的,不依赖类的对象的,是属于类的,在类加载的时候main()方法也随着加载到内存中去(3)void:主方法是程序的起点,所以不需要任何的返回值(4)main:...原创 2020-01-01 20:53:39 · 1661 阅读 · 0 评论 -
(Java)关于内存分配的理解
(1)栈内存空间:保存所有的对象名称(更准确地说是保存了引用的堆内存空间的地址)(2)堆内存空间:保存每个对象的具体属性内容。(3)全局数据区:保存static 类型的属性(4)全局代码区:保存所有的方法定义拿数组操作来说,在栈内存中保存的永远是数组的名称,只开辟了栈内存空间的数组是永远无法使用的,必须有指向的堆内存才可以使用,要想开辟新的堆内存就必须使用new关键字。这也就解释了为什么...原创 2020-01-01 21:29:08 · 353 阅读 · 0 评论 -
(Java)对象数组
所谓的对象数组就是指一组相关的对象的数组需要注意的是数组一定要先开辟空间,但是因为其是引用数据类型,所以数组中的每一个对象都是 null 值,则在使用时数组中的每一个对象必须分别进行实例化操作类 对象数组名称[] = new 类[数组长度];文章目录一、动态初始化二、静态初始化一、动态初始化class Person{ private String name; publi...原创 2020-01-01 22:21:02 · 3605 阅读 · 3 评论 -
一篇文章带你搞定 Java 中的内部类
内部类的唯一好处就是可以方便地访问外部类中的私有属性文章目录一、内部类的基本定义二、使用 static 定义内部类三、在外部访问内部类四、在方法中定义内部类一、内部类的基本定义在类内部可定义成员变量与方法,而且在类内部也可以定义另一个类,如果在类 Outer 的内部再定义一个类 Inner,此时类 Inner 就称为内部类,而类 Outer 则称为外部类内部类可声明成 public 或 p...原创 2020-01-02 22:29:31 · 304 阅读 · 0 评论 -
(Java)实例讲解
文章目录一、系统登录二、示例改进三、如何去开发一个程序?一、系统登录public class LoginDemo { public static void main(String[] args) { if(args.length !=2){ // 判断参数的个数 System.out.println("输入的参数不正确,系统退出!"); // 给...原创 2020-01-03 14:56:02 · 1111 阅读 · 1 评论 -
(Java)单向链表实现
链表是数据结构中经常见到的一种形式所谓的链表就好像火车车厢一样,从火车头开始,每一节车厢之后都连着后一节车厢可以看出要想清楚地表示一个节点之后还有另一个节点,可以在一个节点的内部存放下一个节点的引用class Node{ private String data; // 保存节点内容 private Node next; // 保存下一个节点 public Node(...原创 2020-01-03 22:21:41 · 331 阅读 · 0 评论 -
(Java)单向链表实现(2)
由上节可知,如果由用户去处理各个节点的关系,会非常麻烦,所以最好将节点的操作进行封装,这样用户使用起来会比较方便。例如如果要删除节点,则直接修改上一个节点的引用即可:class Link{ class Node{ // 将节点类定义成内部类 private String data; private Node next; public N...原创 2020-01-05 16:22:25 · 335 阅读 · 0 评论 -
(Java)继承的基本概念
Java中继承的语法:class 父类{} // 定义父类class 子类 extends 父类{} // 使用extends 关键字实现继承通过继承的功能可以直接把父类中的操作拿到子类中使用class Person{ private String name; private int age; public String getName(){ re...原创 2020-01-05 20:58:01 · 686 阅读 · 0 评论 -
(Java)继承的操作
文章目录一、子类对象的实例化过程二、方法的覆写三、super 关键字的作用一、子类对象的实例化过程在继承的操作中,子类对象在实例化之前必须首先调用父类中的构造方法,再调用子类自己的构造方法就如同和实际生活中肯定是先有父母之后才能有孩子,孩子不可能凭空“蹦”出来,对于程序也是一样,之所以会调用父类中的构造方法,就是要用父类的构造方法为父类中的属性初始化,就表示先有父类实例,然后才能产生子类...原创 2020-01-06 09:22:12 · 634 阅读 · 0 评论 -
(Java)继承的应用
文章目录一、要求:二、代码实现一、要求:定义一个整型数组类,要求包含构造方法,增加数据及输出数据成员方法,并利用数组实现动态分配。同时定义:(1)排序类:实现排序;(2)反转类:实现数据反向存放;要求数组实现动态的内存分配(即其中数组的大小是由程序外部决定的),则在本类的构造方法中应该为类中的数组进行初始化操作,之后每次增加数据时都应该判断数组的内容是否是满的,如果不是满的则可以向其添加;...原创 2020-01-06 15:31:41 · 586 阅读 · 0 评论 -
一篇文章带你搞定 Java 中的 final 关键字
final 在 Java 中表示的意思是最终,也可以叫做完结器可以使用 final 关键字声明类、属性、方法,在声明时需要注意以下几点:(1)使用 final 声明的类不能有子类(2)使用 final 声明的方法不能被子类所覆写(3)使用 final 声明的变量即成为常量,常量不可以修改使用 final 声明变量时,要求全部的字母大写,如 INFO,这点在开发中是非常重要的如果一...原创 2020-01-07 16:14:27 · 321 阅读 · 0 评论 -
(Java)抽象类的基本概念
文章目录一、基本概念二、代码示例三、思考一、基本概念在 java 中也可以创建一种类专门用来当做父类,这种类称为“抽象类”。抽象类的作用类似“模板”,其目的是要设计者依据它的格式来修改并创建新的类,但是不能直接由抽象类创建对象,只能通过抽象类派生出新的类,再由它来创建对象。但是在抽象类的使用中同样存在单继承的局限,即一个子类只能继承一个抽象类抽象类的定义及使用规则:(1)包含一个抽象方法...原创 2020-01-07 19:15:20 · 2759 阅读 · 0 评论 -
一篇文章带你搞定 java 中接口的基本概念
接口是Java 中最重要的概念之一,可以认为是一种特殊的类,由全局常量和公共的抽象方法组成interface 接口名称{ 全局常量; 抽象方法;}在接口中的抽象方法必须定义为 public 访问权限,这是绝对不可改变的在接口中如果不写 public,则也是 public 访问权限因为很多的 Java 程序,经常可以看到编写接口方法时,省略了 public,不管写不写接口中的方法都是...原创 2020-01-09 14:25:03 · 446 阅读 · 0 评论 -
一篇文章带你搞定 Java 中对象重写,重载,多态性
一篇文章带你搞定 Java 中对象的多态性原创 2020-01-11 20:59:39 · 566 阅读 · 0 评论 -
(Java)instanceof 关键字
在 Java 中使用 instanceof 关键字判断一个对象到底是哪个类的实例class A{ public void fun1(){ System.out.println("A --> public void fun1(){}"); } public void fun2(){ this.fun1(); }}class...原创 2020-01-11 21:41:58 · 328 阅读 · 0 评论