04 2023 档案
摘要:Java的反射机制允许程序员在执行期借助于Reflection API取得任何类的内部信息,并能操作对象的属性和方法,在各类框架中应用非常广泛。这一期是关于反射内容的笔记,包含Class类、Field类、Method类、Constructor类及相关方法。
阅读全文
摘要:1. Set接口基本介绍 Set是无序集合(添加和取出的顺序不一致,但取出的顺序是固定的),没有索引 不允许重复元素,所以最多包含一个null JDK API中Set接口的实现类有: Abstract, ConcurrentHashMap.KeySetView, ConcurrentSkipList
阅读全文
摘要:集合的理解和好处 数组一旦定义,长度即固定,不能修改。要添加新元素需要新建数组,然后循环拷贝,非常麻烦 集合可以动态保存任意多个对象,使用比较方便 提供饿了一系列方便的操作对象的方法:add、remove、set、get等 使用集合添加、删除新元素的示意代码,简洁明了 集合主要是两组(单列集合,双列
阅读全文
摘要:实现一个简单的UDP通信程序,仅作为笔记使用 网络编程中有三要素:IP、端口号和通信协议,分别用来确定对方在互联网上的地址、指定接受数据的软件和确定数据在网络中传输的规则。 IP地址 IP地址分为IPv4地址和IPv6地址,这里不做讨论。 IPv4地址中分为公网地址(万维网使用)和私有地址(局域网使
阅读全文
摘要:lambda表达式在jdk1.8引入,属于函数式编程,可以在特定的场景中省去很多没有意义的代码,只留下核心逻辑,使代码看起来更简洁。但刚接触lambda表达式并不好理解,这篇笔记展示了从内部类简化到lambda表达式的逻辑,有助于理解lambda表达式。
阅读全文
摘要:静态代理可以在不改变原有代码的情况下,增加新的功能和操作,对原有对象进行扩展。 静态代理要求真实对象和代理对象都实现同一个接口,由代理对象代理真实角色的接口实现,并在实现前后增加新的操作。 public class StaticProxy{ public static void main(Strin
阅读全文
摘要:Java原生支持多线程,主要通过以下四种方式实现多线程: 继承Thread类 实现Runnable接口 实现Callable接口 线程池 继承Thread类 通过创建Thread类的子类,并重写run()方法,通过调用start()方法启动线程。 public class TestThread ex
阅读全文
摘要:这里介绍3种布局: FlowLayout 流式布局 BorderLayout 边界布局 GridLayout 网格布局 FlowLayout /*MyFrame定义见 Java笔记9,这里添加了事件监听方法*/ public class TestFlowLayout { public static
阅读全文
摘要:仅作为笔记 GUI继承体系图 Frame创建 public class Test{ public static void main(String[] args){ //新建Frame Frame frame = new Frame("This is frame title"); //设置可见性 fr
阅读全文
摘要:异常的简单分类 检查性异常:最具代表性的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如用户要打开一个不存在的文件,一个异常就发生了,这些异常在编译时不能被简单的忽略。 运行时异常:运行时异常是可能被程序员避免的异常,与检查性异常相反,运行时异常可以在编译时被忽略。 错误(error
阅读全文
摘要:Java内部类有4种类型: 成员内部类 静态内部类 局部内部类 匿名内部类 //外部类 public class Outer{ private int id = 1001; private void out(){ System.out.println("This is outer class");
阅读全文
摘要:abstract 由abstract关键字修饰的类称为抽象类,可以将某些类共有的行为抽象出来,形成约束,提高开发效率。 //抽象类 public abstract class Action{ //抽象方法,只有方法名字,没有方法的实现 public abstract void doSth(); }
阅读全文
摘要:super关键字的一些注意事项 子类在执行构造方法时,如果显式使用super()显式调用父类构造方法,则该调用必须放代码块在第一行 super必须出现在子类的方法或者构造方法中 使用this()显示调用构造方法,则该调用必须放在代码块第一行 由于第一条和第三条限制,super和this不能同时调用构
阅读全文
摘要:没有原理讲解,仅记录一个实现代码,作为参考和笔记使用 如题,稀疏数组仅在原始数组有效数据较少的情况下起压缩空间的作用 实现过程: 首先为了方便查看和确认,封装一个打印二维数组的方法 public static void printArray(int[][] arrays) { for (int[]
阅读全文
摘要:数组的特点 Java中数组的长度是确定的,一旦被创建,长度即固定,不可改变。 一个数组中的元素类型必须相同,不允许出现混合类型。 数组中的元素可以是任何数据类型,包括基本数据类型和引用类型。 数组变量数于引用类型,数组也可以看成是一个对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,而
阅读全文
摘要:Scanner对象 Scanner是位于java.util.Scanner中的类,实现了Closeable,autoCloseable,Iterator接口,是一个简单的文本扫描程序,可以使用正则表达式解析基本类型和字符串。 Scanner sc = new Scanner(System.in);
阅读全文
摘要:包机制 Java的包可以理解为资源管理器中的文件夹,其作用是防止命名空间重复,使不同包中可以存在同名文件,使工程目录更加清晰。包语句的语法格式为: package pkg1[.pkg2[.pkg3...]]; 包语句一般利用公司域名倒置作为包名,com.cnblogs.blog 同时,包语句的存在,
阅读全文
摘要:打开CMD的方式 右键win,选择终端 Win键+R,输入CMD打开控制台 在任意文件夹下,shift+右键,选择在终端中打开 在资源管理器地址栏前加上CMD路径 管理员方式运行:选择以管理员方式运行 常用的Dos命令 #切换盘符:<目标盘符>: #查看当前目录下的所有文件:dir #切换目录:cd
阅读全文