![](https://img-blog.csdnimg.cn/20200803133021739.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
java
文章平均质量分 94
没什么营养的学习记录
不愿透露姓名的马建国
这个作者很懒,什么都没留下…
展开
-
Spring Boot 中application.yml 和 application.properties 优先级
传送门1传送门2从日志输出看,properties 优先级高于yml。yml会先加载,properties后加载会覆盖前面相同的属性。原创 2020-11-04 13:17:04 · 1110 阅读 · 0 评论 -
java的static块运行时机(类加载,类的加载)
一. 类加载 & 类的加载一般认为static块是在『类加载』时期运行的。但翻博客看到有人认为这句话是错的,作为一个初学者一下子不知道哪个是正确的。花时间整理了一遍这部分内容。先说结论:这句话其实没什么问题,但很多人可能由于英文翻译导致的问题而产生误会。这里的『类加载』其实指的是完整的『类加载』过程,而不是『类的加载』。当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过类的加载,类的连接,类的初始化这三个步骤来对类进行初始化。如果不出现意外情况,JVM将会连续完成这三个步骤。我原创 2020-08-27 21:38:18 · 2155 阅读 · 0 评论 -
Day18_反射
文章目录一. 类加载器1.1 类加载1.2 类加载器1.2.1 类加载器的作用1.2.2 JVM的类加载机制1.2.3 Java中的内置类加载器1.2.4 ClassLoader 中的两个方法二. 反射2.1 概述2.1.1 什么是反射?2.1.2 什么是类对象?2.2 获取Class类对象2.2.1 三种方式2.2.2 【例】2.3 反射获取构造方法并使用2.3.1 Class类获取构造方法对象的方法2.3.2 Constructor类用于创建对象的方法2.3.3 练习12.3.4 练习22.4 反射获取原创 2020-08-27 11:40:46 · 178 阅读 · 0 评论 -
Day17_网络编程
一. 网络编程入门1.1 网络编程概述计算机网络计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换。(建立连接,进行通信)网络通信协议位于同一个网络中的计算机在进行连接和通信时需要遵守的规则,称为网络通信协议。它对数据的传输格式、传输速率、传输步骤等做了统一规定,原创 2020-08-26 20:49:07 · 261 阅读 · 0 评论 -
设计模式_简述
文章目录一、设计模式的六大原则1、开闭原则(Open Close Principle)2、里氏代换原则(Liskov Substitution Principle)3、依赖倒转原则(Dependence Inversion Principle)4、接口隔离原则(Interface Segregation Principle)5、迪米特法则,又称最少知道原则(Demeter Principle)6、合成复用原则(Composite Reuse Principle)二、简述23种设计模式创建型模式1、单例(Si原创 2020-08-25 15:05:29 · 320 阅读 · 0 评论 -
Day16_IO框架 2 (缓冲流,转换流,序列化,打印流)
文章目录七. 缓冲流7.1 缓冲流概述7.2 字节缓冲流构造方法效率测试7.3 字符缓冲流构造方法特有方法7.4 【例】文本排序需求分析实现八. 转换流8.1 字符编码和字符集字符编码字符集8.2 乱码8.3 InputStreamReader类构造方法指定编码读取8.4 OutputStreamWriter类构造方法指定编码写出转换流图解8.5 【例】转换文件编码需求分析实现九. 序列化9.1 序列化概述9.2 ObjectOutputStream类构造方法序列化操作9.3 ObjectInputStre原创 2020-08-24 09:09:30 · 390 阅读 · 0 评论 -
Day16_IO框架1(File类, IO流, 字节流字符流, IO异常, Properties)
文章目录一. File类1.1 概述1.2 File类的静态成员变量1.3 路径绝对路径相对路径1.4 构造方法1.5 常用方法获取功能的方法判断功能的方法创建删除功能的方法遍历目录的方法【例】打印多级目录 (递归)【例】文件搜索1.6 FileFilter接口【例】文件搜索(FileFilter优化)【例】补充:文件搜索(Lambda优化)二. IO流的概念2.1 什么是IO?2.2 什么是流?2.3 流的分类输入流 和 输出流字节流 和 字符流节点流 和 处理流三. 字节流3.1 字节流的父类:3.2原创 2020-08-24 09:01:40 · 504 阅读 · 0 评论 -
Day15_多线程 ( 二 )
文章目录高级多线程五. 线程池线程池概念线程池原理好处:获取线程池常用的线程池接口和类【例】:多窗口独立售票Callable接口【例】:方式三,Callable接口实现Future接口【例】:方式四Lock接口常用方法:重入锁读写锁六. 线程安全的集合Collections中的工具方法CopyOnWriteArrayListCopyOnWriteArraySetConcurrentHashMapQueue接口(队列)常用方法:抛出异常:返回特殊值*:ConcurrentLinkedQueueBlocking原创 2020-08-19 19:43:42 · 356 阅读 · 0 评论 -
Day13.14_多线程 ( 一 )
文章目录基础多线程一. 基本概念串行,并行,并发什么是进程 ?什么是线程 ?进程与线程的区别线程调度二. 线程的组成组成*创建线程类*方式一:继承Thread类Thread类常用方法方式二:实现Runnable接口方式三:使用匿名内部类Thread 和 Runnable 的区别【例】:多窗口独立售票线程优先级优先级相关方法【例】:多窗口按优先级独立售票三. 线程安全什么是线程安全问题 ?如何处理线程不安全 ?如何完成同步操作 ?1. 同步代码块:2. 同步方法:synchronized作用于静态方法和非静态原创 2020-08-19 09:35:52 · 273 阅读 · 0 评论 -
Day12_【学生管理系统】v2.1.1
【注】:通过自定义异常,增加了对异常的处理。Day06_【学生管理系统】v1.0Day09_【学生管理系统】v1.1Day11_【学生管理系统】v2.0系统类package com.csr.stusys;import java.util.HashMap;import java.util.Map;import java.util.Scanner;import com.csr.exception.ScannerInputException;public class StudentMan原创 2020-08-13 21:53:56 · 130 阅读 · 0 评论 -
Day12_异常相关
一. 异常的概念什么是异常概念:程序在运行过程中出现的特殊情况。异常处理的必要性:任何程序都可能存在大量的位置问题、错误;如果不对这些问题进行正确处理,则可能导致程序的中断,造成不必要的损失。二. 异常的分类Throwable:可抛出的,一切错误或异常的父类,位于java.lang包中。|-Error:JVM、硬件、执行逻辑错误,不能手动处理。|-Exception:程序在运行和配置中产生的问题,可处理。|-RuntimeException:运行时异常,可处理,可不处理。|-Check原创 2020-08-13 21:22:20 · 180 阅读 · 0 评论 -
Day12_集合3(Map,JDK9对集合的优化)
文章目录八 . Map集合8.1 Map接口介绍特点:常用方法【例】put() ,remove() ,get()【例】键找值: keySet()+get()Entry键值对对象【例】遍历键值对: entrySet()+getkey() /getValue()8.2 Map的子类8.3 HashMap【例】HashMap存储自定义类型键值8.4 LinkedHashMap8.5 Map集合练习ArrayList嵌套HashMapHashMap嵌套ArrayList计算一个字符串中每个字符出现次数。九. JD原创 2020-08-22 18:11:32 · 244 阅读 · 0 评论 -
Day12_集合2(List,Set,Collections工具类)
文章目录五. List集合5.1 List接口介绍特点:常用方法5.2 ListIterator *ListIterator 与 Iterator 的方法ListIterator 与 Iterator 异同【例】ListIterator 正向遍历 和 反向遍历5.3 List的子类ArrayList:*Vector:LinkedList:*5.4 ArrayList *5.5 LinkedList *【例】六. Set集合6.1 Set接口介绍特点:6.2 Set的子类HashSet:*LinkedHash原创 2020-08-22 18:07:02 · 454 阅读 · 0 评论 -
Day11_集合1(Collection,Iterator,泛型)
文章目录一. Collection集合1.1 什么是集合1.2 集合框架1.3 Collection接口常用方法:【例】:二. Iterator迭代器2.1 Iterator接口2.2 迭代器的实现原理2.3 增强for循环练习1:遍历数组练习2:遍历集合三. 泛型3.1 泛型概述3.2 使用泛型的好处3.3 泛型的定义与使用定义和使用含有泛型的类含有泛型的方法含有泛型的接口3.4 泛型通配符通配符基本使用通配符高级使用----受限泛型四. 案例:【斗地主1】4.1 案例介绍4.2 案例分析4.原创 2020-08-22 17:57:09 · 279 阅读 · 0 评论 -
Day11_【学生管理系统】v2.1
【注】:由数组实现改为HashMap实现。学生信息增加了年龄,性别。OOP。【注】:由姓名查询并修改和删除 改为 由ID查询。Day06_【学生管理系统】v1.0Day09_【学生管理系统】v1.1Day11_【学生管理系统】v2.0import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class StudentManager { public static Scanner scanne原创 2020-08-12 20:59:56 · 72 阅读 · 0 评论 -
Day11_【学生管理系统】v2.0
【注】:由数组实现改为ArrayList实现。学生信息增加了年龄,性别。OOP。【注】:由姓名查询并修改和删除 改为 由ID查询。Day06_【学生管理系统】v1.0Day09_【学生管理系统】v1.1import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class StudentManager { public static Scanner scanner = new Scanne原创 2020-08-12 17:54:53 · 129 阅读 · 0 评论 -
Day11_常用类
一. 内部类内部类包含:成员内部类、静态内部类、局部内部类、匿名内部类什么是内部类?概念:在一个类的内部再定义一个完整的类。特点:编译之后可生成独立的字节码文件。内部类可直接访问外部类的私有成员,而不破坏封装。可为外部类提供必要的内部功能组件。class Outer { class Inner { }}↓ 编译后???? Outer$Inner.class???? Outer.class成员内部类在类的内部定义,与实例变量、实例方法原创 2020-08-11 20:06:42 · 119 阅读 · 0 评论 -
Day10_接口
文章目录一. 什么是接口什么是接口微观概念:接口的好处二. 接口与类的异同与抽象类的异同三. 接口的应用接口的语法四. 接口的规范接口的规范接口引用接口的多态常见关系五. 常量接口什么是接口宏观概念:六. 接口回调回调原理总结一. 什么是接口什么是接口微观概念:接口是一种能力和约定。接口的定义:代表了某种能力。方法的定义:能力的具体要求。接口的好处程序的耦合度降低更自然的使用多态设计与实现完全分离更容易搭建程序框架更容易更换具体实现二. 接口与类的异同与抽象类的异同相同原创 2020-08-10 16:06:15 · 229 阅读 · 0 评论 -
Day09_abstract,static,final
文章目录一. abstract 抽象类、抽象方法什么是抽象不该被创建的对象抽象类的作用不该被实现的方法抽象方法总结:二. static 静态成员、类加载实例属性静态属性什么是静态静态方法静态的特点动态代码块类加载静态代码块对象创建过程带有继承的对象创建过程总结:三. final 最终类、方法、常量什么是最终final类final变量实例常量静态常量对象常量总结:一. abstract 抽象类、抽象方法什么是抽象是指抽取事物具有的普遍性的本质。要求抽出问题的特征而忽略非本质的细节,是对具体事物的一个概括原创 2020-08-07 17:11:25 · 114 阅读 · 0 评论 -
Day09_【学生管理系统】v1.1
【注】:简化了冗余逻辑,未过多封装功能。package com.csr;import java.util.Arrays;import java.util.Scanner;public class StudentManager_01 { public static Scanner scanner = new Scanner(System.in); public static String[] studentArray = new String[0]; public static voi原创 2020-08-07 17:02:54 · 140 阅读 · 0 评论 -
Day08_三大特性,覆盖,instanceof
一. 封装封装的必要性public class TestEncapsulation { public static void main(String[] args) { Student s1 = new Student(); s1.name = "Tom"; s1.age = 20000; // 在对象的外部,为对象的属性赋值,可能存在非法数据的录入。 s1.sex = "male"; s1.score = 100D原创 2020-08-06 19:01:56 · 348 阅读 · 0 评论 -
Day07_面向对象 OOP
一. 什么是对象程序是为了模拟现实世界,解决现实问题而使用计算机语言编写的指令集合。世界是由无数个对象组成的。面向对象思想(Object Oriented Programming,OOP):一切客观存在的事物都是对象,万物皆对象。任何对象,一定具有自己的特征和行为。特征:称为属性,一般为名词,代表对象有什么。行为:称为方法,一般为动词,代表对象能做什么。如何使用程序模拟现实世界,解决现实问题?首先,在程序当中,必须具有和现实中相同的对象,用以模拟现实世界。然后,使用程序中的对象代原创 2020-08-05 17:35:00 · 156 阅读 · 0 评论 -
Day06_【学生管理系统】v1.0
【注】:功能描述系统主页:选择身份,输入账号密码登录教师账号:admin 密码:admin123教师功能:查询学生列表、添加学生、修改学生、删除学生、返回主页、退出系统学生账号:student 密码:student123学生功能:查询学生列表、返回主页、退出系统【注】:暂时采用数组实现数据存储。POP。未定义其他类,人员信息仅包含姓名,无修改账号密码等功能。其他功能日后完善。package com.csr;import java.util.Scanner;public class St原创 2020-08-04 13:45:45 · 139 阅读 · 0 评论 -
Day05_数组
为什么使用数组?如何存储100名学生的成绩?如何让100名学生成绩全部+1?更复杂的操作呢?数组可以减少重复操作,并进行统一操作。概念:一组连续的存储空间,存储多个相同数据类型的值。特点:类型相同,长度固定二. 数组的声明与赋值public static void main(String[] args) { int[] a = new int[5]; // int a[] = new int[5]; 也可以}int[] a —— 声明int数组类型变量定义变量名为a原创 2020-08-03 19:17:43 · 141 阅读 · 0 评论 -
Day04_方法
一. 方法的概念概念:实现特定功能的一段代码,可以反复使用【注】: 方法的本质是一种行为。二. 方法的定义定义语法:public static void 方法名称() { // 方法主体}**经验:**将需要在多个位置重复使用的一组代码,定义在方法内部。定义位置:方法定义在类的内部,与main方法并列。// 位置1public class TestDefinitionFunction { // 位置2 public static void main(Strin原创 2020-07-31 13:14:23 · 119 阅读 · 0 评论 -
Day03_循环结构及嵌套【练习】
01.根据以下提示,完成相应功能.(要求使用: switch 和 do while)import java.util.Scanner;public class BankTest { public static void main(String[] args) { do { System.out.println("============== 歡迎使用ATM自動銀行服務=============="); System.out.println("1:開戶 2:存款 3:取款 4:轉.原创 2020-07-30 20:26:16 · 126 阅读 · 0 评论 -
Day03_循环结构及嵌套
一. 循环的概念概念: 通过某个条件,重复执行一段逻辑代码二. while循环语法: while (布尔表达式) { // 逻辑代码 (循环操作) }执行流程:先对布尔表达式进行判断,结果为true,则执行逻辑代码。本次执行完毕后,再次进行判断,结果仍旧为true,则再次执行逻辑代码。直到布尔表达式的结果为false时,才会退出循环结构,执行后续代码。int i = 1;while (i <= 4) { System.out.println("第" + i +原创 2020-07-30 20:11:13 · 99 阅读 · 0 评论 -
Day03_分支结构及嵌套
一. 基本if选择结构语法: if(布尔表达式) { // 代码块 }执行流程:对布尔表达式进行判断结果为true,则先执行代码块,再执行后续代码。结果为false,则跳过代码块,直接执行后续代码。int score = 100;if (score > 90) { System.out.println("Win!");}二. if-else选择结构语法: if(布尔表达式) { // 代码块1 } else { // 代码块2 }执行原创 2020-07-30 14:41:03 · 542 阅读 · 0 评论 -
Day02_变量、数据类型、运算符、类型转换、控制台输入
一. 变量变量组成:数据类型, 变量名, 值变量定义流程: 声明: //开辟整数变量空间 数据类型 变量名; int money; 赋值: //将整数值赋给变量 变量名 = 值; money = 100; 应用: // System.out.print(money);【注】: Java是强类型语言,变量的类型必须与数据的类型一致。定义变量的三种方式:先声明,再赋值int money;money = 100;声明并赋值int money =原创 2020-07-29 20:26:13 · 305 阅读 · 0 评论