随笔分类 - Java / JavaSE
摘要:UDP编程步骤 发送端 1、创建一个DatagramSocket 2、准备发送的数据,并且打包 DatagramPacket 要指定:发送的数据,长度,接收方的IP,接收方的端口号 3、通过DatagramSocket的send(数据报) 4、关闭 接收端 1、创建一个DatagramSocket
阅读全文
摘要:网络编程 网络编程的三个要素 1、IP地址或主机名 InetAddress String:192.168.24.71 每一个整数是1~255 域名:www.baidu.com 通过域名解析器,找对对应的ip地址 2、端口号 0~65535 建议不要使用 0~1023 用于基础服务 tomcat/jb
阅读全文
摘要:Lambda表达式与StreamAPI 这两个的目的都是想要使得Java能够实现函数式编程 Lambada表达式主要针对接口,函数式接口进行的优化,简化代码 StreamAPI主要是针对集合的处理操作进行的优化,简化代码 Lambda表达式 是一个匿名的函数,为了把方法体的实现代码当做数据一样进行传
阅读全文
摘要:反射 为什么要用反射? 因为Java是静态的强类型语言,在编译阶段就需要确定类型 Java为了实现“动态性“特征,引入了反射机制 变量可以使用Object声明,然后在运行时确定某个对象的运行时类型 或者在运行时动态的”注入“某个类型的对象,动态的创建某个类型的对象 例如:用这个类型的Class对象,
阅读全文
摘要:Optional类 java.util.Optional<T> 尽量避免空指针 1、创建Optional对象 (1)创建一个空Optional Optional.empty() (2)创建一个包装了对象的Optional Optional.of(obj) obj必须是非空,否则异常 (3)创建一个包
阅读全文
摘要:多线程 概念 程序 为了完成某个任务或功能,选择某个编程语言而编写的一组代码指令的集合 进程 程序的一次运行,是操作系统管理和调度的最小单位,每一个进程之间内存是相互独立的,如果进程之间要通信比较麻烦,可以通过文件,或网络通信方式等 线程 是进程中的其中一条执行路径,是CPU调度任务的最小单位 线程
阅读全文
摘要:处理流 缓冲流 作用:增加缓冲区,提供效率 类型 BufferedInputStream 包装InputStream 例如:FileInputStream、DataInputStream、ObjectInputStream等 BufferedOutputStream 包装OutputStream 例
阅读全文
摘要:IO流 IO I input 输入 O output 输出 IO流的分类 1、按照IO流的数据流动方向分 输入流 输出流 2、按照IO流的数据处理的最小单位分 字符流 字节流 3、根据IO流的作用分 节点流 处理流 IO流的四个抽象基类,超级父类 InputStream 字节输入流 OutputSt
阅读全文
摘要:泛型 概念 类型参数,参数化的类型 比喻:标签 形式 1、泛型类、泛型接口 //语法格式 [修饰符] class/interface 类名/接口名<类型参数列表>{ } 多个之间使用,分割 类型参数习惯命名 原则:尽量见名知意,尽量是1个大写字母,或大写字母加数字 E Element K Key V
阅读全文
摘要:异常 1、什么是异常 哪些不是异常 语法错误 逻辑错误 不可预知的非正常的情况 例如:网络中断,用户不合适的输入,硬盘已满,操作系统崩溃,内存溢出等 2、异常的体系结构 java.lang.Throwable 所有异常和错误的超类 (1)只有这个类型或它子类的对象才能被“抛出” (2)只有这个类型或
阅读全文
摘要:设计模式 设计模式 + 反射 + 泛型 + 注解/配置文件等 单例模式 最简单,考的最多的一个设计模式 要点 (1)构造器私有化 (2)在本类中创建这个唯一的实例 分类 //饿汉式 //形式一 class Hungry{ public static final Hungry INSTANCE = n
阅读全文
摘要:集合 概念 集合是一个容器:是一个用来装对象的容器 数据结构 1、物理结构 数组也是一个容器 缺点 (1)长度固定 (2)无法直接获取有效元素的个数 在实际开发中,基本数据类型一般用数组,引用数据类型一般用集合 数组是依据“数组名+下标”来确定某个元素,数组名中存储的是数组的首地址 链表 不仅仅存储
阅读全文
摘要:JavaSE API 续 时间类 JDK1.8日期时间(1.8之前的不说,因为已经没有用了) 相关的包 本地日期时间 java.time.LocalDate java.time.LocalTme java.time.LocalDateTime 对应旧版本java.util.Calendar 方法列表
阅读全文
摘要:JavaSE API 排序 java.lang.Comparable java.lang.Comparator java.lang.Object 它是所有类型的根父类 一个类如果没有显式声明它的父类,这个类的直接父类就是Object 理解 (1)Object类的所有方法,在所有对象中都有,包括数组对
阅读全文
摘要:面向对象高级特性 抽象 为什么会有抽象类 当子类中都有一个共同的方法,每一个子类都有不同的实现,在父类中又要体现所有子类的共同的特点,所以要体现有这个方法,但是在父类中又无法给出具体的实现,那么这个时候就需要把这个方法声明为抽象的,而包含抽象方法的类,必须是抽象类 某个父类仅仅是表示一个抽象的概念,
阅读全文
摘要:方法 方法(Method):又称为函数(Function),代表一个独立功能,目的为了代码重用 声明格式 【修饰符列表】 返回值类型 方法名(【形参列表】)【抛出异常列表】{ 方法体,方法功能的实现代码; 【return 【返回值】;】 } //四种形式 //1.无参无返回值 [修饰符列表] voi
阅读全文
摘要://类的格式声明 //格式 [修饰符] class 类名{ //属性列表 //构造器列表 //get/set方法 //其他方法 } 如何创建对象 new 类名(); 用无参构造 new 类名(参数); 用有参构造 匿名对象和有名对象: Student stu = new Student(): stu
阅读全文
摘要:面向对象(重点难点) 面向对象和面向过程 都是编程思想 面向过程注重过程,步骤,怎么做 执行者 面向对象注重对象,谁来做 指挥者 面向对象学习 1、类与对象 (1)类与对象的概念 (2)类与对象的关系 (3)如何设计类,类的成员 (4)如何创建对象 2、面向对象的三个基本特征和高级特性 基本特性 封
阅读全文
摘要:今天写了一个小游戏,狐狸行走 主要实现了以下几个功能 1.人自动行走 2.背景会随着人物的行走进行改变 3.键盘监听,按下方向键,人物方向也会随之改变 4.人物不能走出画面外 下面是代码(还可以继续完善): 1 package games; 2 3 import java.awt.*; 4 impo
阅读全文
摘要:二维数组 声明: 数组类型【】【】 数组名; 如何创建二维数组对象及初始化 动态初始化 1.数组名 = new 元素的数据类型[行长度][每一行的列长度]; 每一行的列数相同 2.数组名 = new 元素的数据类型[行长度][]; 每一行的列数不确定 每一行的行对象是null 创建每一行的行对象,即
阅读全文