- 博客(20)
- 收藏
- 关注
原创 Java高级笔记——反射(Reflection)机制
1、反射机制概述 Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。*这个对象就像一面镜子,透过这个镜子看到类的结构,所以,我们形象的称之为:反射。 Java反射机制提供的功能 .
2022-04-01 22:32:32
407
原创 代理设计模式
1、什么是代理设计模式?即Proxy Pattern,23种常用的面向对象软件的设计模式之一。为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象或者为了某种简洁方便,而代理对象可以在客户端和目标对象之间起到中介的作用。在生活中常见的代理有:如抢票软件、各种中介还有代理服务器,这些和我们今天说的代理设计模式原理是一样的。中介可以帮我们做很多事,让我们省心、省事,只要把我们要做的是委托给中介就可以了,但是中介也是需要费用或...
2022-04-01 20:47:25
1719
原创 模板方法设计模式(TemplateMethod)
在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。例如,去银行办理业务一般要经过以下3个流程:取号排队、办理具体业务、对银行工作人员进行评分等,其中取号排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现,但是办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延迟到子类中实现。当然了,在生活中还有许多相似的例子...
2022-03-24 21:17:51
1316
原创 Java高级笔记--网络编程
Java高级笔记--网络编程1、网络编程概述1、概述 Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序。 Java提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境。 2、网络基础 计算机网络: 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一
2022-01-06 23:30:05
216
原创 Java高级笔记-IO流
Java高级笔记-IO流1、File类的使用1.1、File类的概述 java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关 File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。 想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对 象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。 File对象可以作为参数传递给流的构造器
2022-01-05 21:55:29
261
1
原创 Java高级笔记--集合
1、Java集合框架概述 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用Array存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中。 数组在内存存储方面的特点: 数组初始化以后,长度就确定了。 数组声明的类型,就决定了进行元素初始化时的类型 数组在存储数据方面的弊端: 数组初始化以后,长度就不可变了,不便于扩展
2021-12-04 18:29:07
161
原创 Java高级笔记——枚举类与注解
Java高级笔记——枚举类与注解1、枚举类的使用:入门 类的对象只有有限个,确定的。举例如下: 星期:Monday(星期一)、…、Sunday(星期日) 性别:Man(男)、Woman(女) 季节:Spring(春天)、…、Winter(冬天) 线程状态:创建、就绪、运行、阻塞、死亡 …… 当需要定义一组常量时,强烈建议使用枚举类 枚举类的实现: JDK 1.5之前需要定义枚举类 JDK 1.5新增的enum 关键字用于定义枚举类
2021-11-28 08:50:22
833
原创 IDEA类的下标从C变成了J,导入的项目不能运行?
问题一:有时候我们在使用IDEA的时候突然发现类的下标从之前的C变成了J,而且写代码也没有提示,但是却能正常运行,情况如下:那么如何将其改回我们之前的C或I下标呢?操作如下:选择File → 找到 Power Save Mode 取消勾选即可若无变化,继续执行操作:同样选择File → 找到Inlivadate Caches 刷新如果依然无用,则可能是导入项目的时候遇到了问题,需将当前项目从新导入:1、首先在File下找到Project Structure(三键 +
2021-11-27 16:27:14
4012
1
原创 Java高级笔记——常用类
Java高级笔记——常用类1、字符串相关的类1.1、String类及常用方法 String的特性 String类:代表字符串。Java程序中的所有字符串字面值(如“abc”)都作为此类的实例实现。 String是一个final类,代表不可变的字符序列 字符串是常量,用双引号引起来表示。它的值在创建后不能更改。 String对象的字符内容是存储在一个字符数组 value[] 中的。 import org.junit.Test;
2021-11-26 18:11:24
276
原创 Java高级笔记-多线程
1、基本概念:程序、进程、线程 程序(program):是完成特定任务、用某种语言编写一组指令的集合。即指一段静态代码,静态对象。 进程(process):是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程。 --生命周期 程序是静态的,进程是动态的 进程作为资源分配的单位,系统在运行是会为每个进程分配不同的内存区域 线程(thread):进程可进一步细化为线程,是一个程序内部的一条执行路径。
2021-11-20 18:41:11
497
原创 Java笔记-异常机制
1、什么是异常 实际工作中,遇到的情况不可能是非常完美化。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据库可能是空的等。我们程序在跑着,内存或硬盘可能满了等等。 软件程序在运行过程中,非常可能遇到刚刚提到的这种异常问题,我们叫“异常”,英文是:Exception,意思是例外。这些,例外情况,或者叫异常,怎么让我们写的程序做出合理的处理。而不至于程序崩溃。 异常指程序运行中出现的不期而至的各
2021-11-06 14:20:13
101
原创 Java笔记--面向对象
Java笔记--面向对象1、面向过程 & 面向对象 面向过程思想 步骤清晰简单,第一步做什么、第二步做什么… 面向过程适合处理一些较为简单的问题 面向对象思想 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。 面向对象适合处理复杂的问题,适合处理需要多人协作的问题! 对于描述复杂的事务,从宏观上把握、从整体上合理分析,我
2021-11-06 10:03:34
124
原创 Java笔记--数组
Java笔记--数组1、数组的定义 数组是相同类型数据的有序集合。 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。 2、数组声明创建 首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法: dateType[] arrayRefVar; //首选的方法或dateType arrayRefVar[]; //效果相同,但不是首选
2021-09-25 16:20:16
176
原创 Java笔记--方法详解
Java笔记--方法详解1、什么是方法? Java方法是语句的集合,他们在一起执行一个功能。 方法是解决一类问题的步骤的有序组合。 方法包含于类或对象中。 方法在程序中被创建,在其他地方被引用。 设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只能完成1个功能,这样有利于我们后期的拓展。 2、方法的定义 Java的方法类似于其它语言的函数,是一段用来
2021-09-22 17:11:12
148
原创 Java笔记--流程控制
Java笔记--流程控制1、顺序结构 Java中的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。 顺序结构是最简单的算法结构。 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。 2、选择结构 if单选择结构 我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示 语法:if(布尔表达式){
2021-09-21 10:17:07
188
原创 Java笔记--Scanner对象
Scanner对象 之前我们学习的基本语法中并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner 类来获取用户的输入。 基本语法 Scanner s = new Scanner(System.in); 通过Scanner类的next()与nextLine()方法获取输入的字符串,再读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。 next()方法:
2021-09-17 23:26:51
126
原创 Java个人笔记——基本运算符
Java语言支持以下运算符: 算术运算符:+,-,*,/,%,++,-- 赋值运算符:= 关系运算符:>,<,>=,<=,==,!=instanceof 逻辑运算符:&&,||,! 位运算符:&,|,^,~,>>,<<,>>>(了解!!!) 条件运算符:?,: 扩展赋值运算符:+=,-=,*=,/= 1.算术运算符--二元运算符://定
2021-09-14 23:10:54
145
原创 Java个人笔记——变量、常量、作用域
变量 变量是什么? 顾名思义,变量就是可以变化的量。 Java是一种强类型语言,每个变量都必须声明其类型。 Java变量是一种最基本的存储单位,其要素包括变量名、变量类型以及作用域。 注意事项: 每个变量都有类型,类型可以是基本类型,也可以是引用类型。 变量名都必须是合法的标识符,不可以使用Java中的关键字,应该是唯一不重复的,且应选择有意义的单词作为变量名。 变量声明是一条完整的语句,因此每一个声明都必须以分号结尾。..
2021-09-12 10:32:33
135
原创 Java个人笔记-八大基本数据类型
1.整数byte num1=10;//占1个字节码范围:-128~127short num2=20; //占2个字节码范围:-32768~32767int num3=30;//int类型最为常用,占4个字节码范围:-2147483648~2147483647long num4=10L;//long类型要在数字后面加一个L,占8个字节码范围:-9223372036854775808~9223372036854775807拓展进制:二进制:0b 十进制 八进制:0 十六进制:0xint
2021-09-11 00:13:27
119
原创 MarkDown学习
标题用法:用‘#’进行表示,一个‘#+空格’表示一级标题,两个‘#+空格’号表示二级标题,以此类推,最多可以到六级标题,也就是六个‘#’号。注:‘#’后一定要加空格!字体粗体:Hello,World! 字段两端加两个‘*’号或者快捷键:ctrl+b斜体:Hello,World! 字段两端加一个‘*’号或者快捷键:ctrl+i斜体加粗:Hello,World! 字段两端加三个‘*’号或者快捷键:ctrl+i+b下划线:Hello,World! 快捷键ctrl+u。删除线:Hel
2021-09-08 09:44:43
93
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人