Java学习笔记
文章平均质量分 51
宇智波白给
这个作者很懒,什么都没留下…
展开
-
JDBC
JDBC概述JDBC概述持久化:把数据保存到可掉电式存储设备中以供之后使用。数据持久化意味着将内存中的数据保存到硬盘上 加以“固化”,而持久化的实现过程大多通过各种关系数据库来完成。持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件中、XML数据文件中JDBC体系结构JDBC接口(API)包括两个层次:面向应用的API:Java API,抽象接口,供应用程序开发人员使用(连接数 据库,执行SQL语句,获得结果)面向数据库的API:Java Driver A原创 2021-05-07 09:45:03 · 117 阅读 · 0 评论 -
Java反射案例
Java反射案例需求写一个“框架”,可以帮我们创建任意类的对象,并且执行其中任意方法步骤1.将需要创建的对象的全类名和需要执行的方法定义在配置文件中2.在程序中加载读取配置文件3.使用反射技术来加载类文件进内存4.创建对象5.执行方法class anlifanshe { public static void main(String[] args) throws IOException, ClassNotFoundException, IllegalAccessException,原创 2021-05-05 02:26:51 · 258 阅读 · 0 评论 -
Java中的反射
反射反射:框架设计的灵魂框架:半成品软件。可以在框架的基础上进行软件开发,简化编码反射概念:将类的各个组成部分封装为其他对象,这就是反射机制反射用一个 数组来存储 加载的类的成员变量、构造方法、成员方法[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JS9ubXM6-1620150999150)(C:\Users\26049\Desktop\1.png)]反射的好处:可以在程序运行过程中,操作这些对象。可以解耦,提高程序的可扩展性。获取成员变量Fiel原创 2021-05-05 01:56:48 · 150 阅读 · 0 评论 -
Java中的网络编程入门
网络编程软件结构C/S结构: 全称为 Client/Server 结构,是指客户端和服务器结构。B/S结构: 全程为 Browser/Server 结构, 是指浏览器和服务器结构。网络编程,就是在一定协议下,实现两台计算机的通信的程序网络通信协议网络通信协议:位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则TCP/IP协议: 传输控制协议/因特网互联协议 是Internet最基本、最广泛的协议。网络通信协议的分类UDP:用户数据报协议 (数据报是网络传输的原创 2021-05-04 21:54:34 · 170 阅读 · 1 评论 -
Java中的ObjectOutputStream类
ObjectOutputStream类对象的序列化流作用:把对象以流的方式写入到文件中保存特有方法:writeObject( ) 将指定的对象写入 ObjectOutStreampublic class Demo { public static void main(String[] args) throws FileNotFoundException, IOException { ObjectOutputStream oos = new ObjectOutputStream(new原创 2021-05-04 14:59:25 · 438 阅读 · 0 评论 -
Java中的属性集Properties
属性集Properties唯一个和IO流相结合的集合可以使用Properties集合中的方法 store,把集合中的临时数据存储为文件可以使用Properties集合中的方法 load,把文件读取到集合中Properties 双列集合 默认 都是字符串类型常用方法1.setProperty( ) 调用 setTable 的 put2.getProperyt( ) 通过key找到value值3.stringProperty( ) 返回属性列表中的键集public class Tes原创 2021-05-02 17:48:32 · 80 阅读 · 0 评论 -
Java中的IO流
IO流input 输入 读取output 输出1个字符=2个字节 1个字节=8个二进制位输入流与输出流字节流:FileInputStream 字节输入流FileOutputStream 字节输出流 常用方法close( ) 关闭流flush( ) 刷新流并强制写出缓冲的输出字节write( ) 写入字节read( ) 读取字节写入数据的原理java程序 - - > JVM(java虚拟机) - - > OS(操作系统) - - > OS调用原创 2021-05-02 17:19:09 · 197 阅读 · 0 评论 -
Java中的File类
Java中的File类Java.io.File 主要用于文件和目录的创建、查找和删除等操作路径分割符File.pathSeparator window 中 路径分隔符为 ; Linux中为 :File.Separator window 中文件名称分隔符 \ LInux 中为 /路径1.路径不区分大小写2.Java中需要 转义字符 \ \ 表示一个 \File使用File f1 = new File("路径或文件");常用方法getAbsoluteP原创 2021-05-02 16:49:51 · 165 阅读 · 0 评论 -
Lambda表达式
Lambda表达式() -> { System.out.println("代码执行"); } // () 方法为参数列表 -> 后 是执行的代码Lambda(无参无返回值)() -> { System.out.println("无参无返回的Lambda表达式"); }Lambda(有参有返回值)(int a, int b) -> { int c = a+b; return c; }...原创 2021-05-01 16:07:18 · 69 阅读 · 0 评论 -
Java中的多线程
并发与并行并发:指两个或多个事件在同一时间段内发生 交替执行并行:指两个或多个事件在同一时刻发生(同时发生)线程与进程进程:一个内存中运行的应用程序就成为进程 线程:线程是进程当中的一个执行单元,一个进程至少有一个线程线程的调度:分时调度所有线程轮流使用CPU,平均分配每个线程占用CPU的时间抢占式调度优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),Java使用的就是抢占式调度创建线程类主线程:执行main方法的线程叫做主线程Java原创 2021-04-29 21:23:49 · 93 阅读 · 0 评论 -
Java中的异常
Java中的异常异常分类:编译器异常:还未运行编译器显示报错运行异常: 编译后出现的报错抛出异常throwthrow可以在指定方法中抛出指定异常使用格式throw new xxxException(“异常产生的原因”);注意事项:1.throw关键字必须写在方法内部2.throw关键字后边new的对象必须是Exception或者是Exception的子类对象3.throw抛出指定的异常对象 必须处理处理方式:1.throws 2.try…catchthrows用throws原创 2021-04-26 17:00:30 · 85 阅读 · 0 评论 -
Java中的Map
Java中的MapMap集合是双列集合 Map<K,V>一个对象包含两个值 K不允许重复Map集合的特点:1.一个元素包含两个值 K 和 V2.Map集合中的元素,Key 和 Vaule 的数据类型 可以相同也可以不同3.Map集合中的元素,Key 不允许重复Map集合常用实现类HashMap<K,V> (无序 多线程)查询特别快子类:LinkedHashMap<K,V> 增加一条链表 保证了存储有序Map集合常用方法1.p原创 2021-04-23 11:47:23 · 117 阅读 · 0 评论 -
Java中的Collections
Collections常用功能addAll 往集合中添加一些元素public class Test { public static void main(String [] args) { ArrayList list = new ArrayList(); Collections.addAll(list, 1,"2","abc","张三"); System.out.println(list); }}运行结果:shuffle 打乱集合顺序public class原创 2021-04-20 21:09:42 · 135 阅读 · 0 评论 -
Java中的可变参数
可变参数使用前提:当方法的参数列表数据类型已经确定 参数的个数不确定使用格式: 定义方法时 修饰符 返回值类型 方法名(数据类型…变量名){}可变参数的底层就是一个数组 //计算未知个数整数的和public int add(int…a){ int sum = 0; for(int a : sum){ sum + = 0; } return sum;}一个方法的参数列表只能有一个可变参数可变参数写在参数列表最后面可变参数...原创 2021-04-20 16:28:06 · 55 阅读 · 0 评论 -
Java中的 List 与 Set
List 与 SetList 接口 1.有序的集合,存储元素和取出元素的顺序是一致的(存储123 取出123) 2.有索引,包含了一些带索引的方法 3.允许存储重复的元素List 接口中带索引的方法 (特有) 1.add 添加 2.get 获取 3.remove 删除 4.set 替换List 集合下的 ArrayList不同步即为 多线程多线程效率高ArrayList 增加删除效率慢 但是查找快底层为 数组结构List 集合下的 LinkedList原创 2021-04-20 16:25:58 · 127 阅读 · 0 评论 -
Java中的泛型
Java中的泛型泛型的概念:泛型可以看作是一种存储数据类型的变量当我们在创建ArrayList集合时 不知道元素的类型 可以使用泛型使用泛型的好处:创建集合对象,不使用泛型好处:集合不使用泛型,默认类型是 Object类,可以存储任意类型的数据弊端:不安全,会引发异常创建集合对象,使用泛型好处:避免了类型转换的麻烦弊端:泛型是什么类型,只能存储什么类型的数据定义和使用含有泛型的类定义格式:修饰符 class 类名<泛型变量>( ){}public c原创 2021-04-20 10:11:02 · 75 阅读 · 0 评论 -
Java中的Iterator接口
Java中的Iterator接口Itertor 又称作迭代器迭代:Collection集合元素的通用获取方式hasNext( )方法如果仍有元素可以迭代,则返回truenext( )方法返回迭代的下一个元素remove( ) 方法从迭代器指向的Collection中移除迭代器返回的最后一个元素利用Iterator实现对Collection集合的遍历Collection<String> coll = new ArrayList<>();coll.add("姚明")原创 2021-04-16 20:07:45 · 82 阅读 · 0 评论 -
Java中的Collectiion集合
Java中的Collection集合集合的长度是可以改变的(图转自哔哩哔哩Java基础)List接口:1.有序集合 (存储和取出元素顺序相同)2.允许存储重复的元素3.有索引Set接口:1.不允许存储重复元素2.没有索引add( )方法向集合中添加元素clear( )方法清空集合中所有元素remove( )方法在集合中删除指定元素contains( )方法判断集合中是否含有该元素isEmpty( )方法判断当前集合是否为空size( )方法返回集合中元素的个数t原创 2021-04-16 19:51:19 · 196 阅读 · 0 评论 -
Java中的包装类
Java中的包装类由于基本类型的数据没有对应的方法来操作这些数据所以我们可以使用一个类,把基本类型的数据包装起来,这个类叫包装类在包装类中可以定义一些方法,用来操作基本类型的数据装箱与拆箱:装箱:从基本类型转换为对应的包装类对象拆箱:从包装类对象转换为对应的基本类型//装箱 Integer in = new Integer(1); //方法已过时 System.out.println(in);用静态方法 Integer in1 = Integer.valueof("1"原创 2021-04-15 17:49:19 · 64 阅读 · 0 评论 -
Java中的StringBuilder类
Java中的StringBuilder类字符串的拼接问题字符串是常量;它们的值在创建之后不能改变。字符串缓冲区支持可变的字符串。因为 String 对象是不可改变的,所以可以共享。注意:1.字符串的底层是一个被final修饰的数组,不能改变,是一个常量private final byte[ ] value;2.进行字符串的相加,内存中就会有多个字符串,占用空间多,效率低下。例如: String s = “a” + “b” + “c”; //虽然最终结果为 s = “abc” 但占原创 2021-04-12 21:01:49 · 83 阅读 · 0 评论 -
Java中的System类
Java中的System类currentTimeMillis( )返回以毫秒为单位的当前时间 可以用来测试当前程序花费多少时间public class Demo { public static void main(String[] args){ long s = System.currentTimeMillis(); for(int i = 1; i <= 9999; i++) { System.out.println(i); } long e = System.原创 2021-04-12 17:51:20 · 77 阅读 · 0 评论 -
Java中的 Calendar类
Java中的 Calendar 类Calendar类(也称日历类) Calendar 是一个抽象类 所以无法直接用其创建对象使用里面含有很多操作日历字段的方法getInstance( )方法该方法返回了 Canlendar类的子类对象使用方法:public class Demo{ public static void main(String[] args){ Calendar c = Calendar.getInstance(); //多态 System.out.println(原创 2021-04-12 17:24:28 · 175 阅读 · 0 评论 -
Java中关于时间日期的两个类
Java 中的日期时间类 Date类首先需要导入包 java.util.Date 表示特定的瞬间 精确到毫秒Date 类中的时间原点 1970年1月1日 00:00:00 (0毫秒)public class Demo { public static void main(String[] args){ System.out.println(System.currentTimeMillis()); //获取当前系统时间到 1970 年1月1日 00:00:00 一共过了多少毫秒 }}原创 2021-04-10 21:30:37 · 181 阅读 · 0 评论 -
Java中的内部类
Java中的内部类分类:1.成员内部类2.局部内部类(包含匿名内部类)成员内部类定义格式:修饰符 class 外部类名称{ 修饰符 class 内部类名称{ }}注意事项:内部类使用外部类可以随意访问;外部类使用内部类需要借助内部类对象当内部类名为heart 外部类名为body时 编译后的文件如图所示:调用方法如图:内部类的重名问题:public class Outer{ int num = 10; public c原创 2021-04-09 19:37:16 · 84 阅读 · 0 评论 -
Java中四种权限修饰符的权限大小
Java中的四种权限修饰符四种权限修饰符为: public > protected > (default) > private同一个类 yes yes yes yes同一个包 yes yes yes no不同包子类 yes yes原创 2021-04-08 20:20:57 · 1041 阅读 · 0 评论 -
Java中的final
Java中的 final 关键字final 关键字的四种常见用法:1.可以用来修饰一个类public final class test1 { //当前这个类不允许有子类}2.可以用来修饰一个方法//当final关键字修饰一个方法时,这个方法不能被覆盖重写public class test2{ public final void method(){ //这个方法将不能被覆盖重写 System.out.println("一个方法"); }}3.还可以用来原创 2021-04-08 20:06:42 · 77 阅读 · 0 评论 -
Java中对象的向上向下转型
对象的向上向下转型对象的向上转型即 多态写法:格式: 父类名称 对象名 = new 子类名称 ( );含义: 右侧创建一个子类对象,把它当做父类来看待使用。注意事项: 向上转型一定是安全的对象的向下转型即 还原向上转型格式: 子类名称 对象名 = (子类名称) 父类对象;含义: 将父类对象,还原成为子类对象Animal animal = new Cat();Cat cat = (cat) animal;...原创 2021-04-06 16:57:50 · 67 阅读 · 0 评论 -
Java的面向对象
面向对象补充:对象数组 用来存储对象封装:封装在Java当中的体现:1.方法就是一种封装2.关键字 private 也是一种封装 (封装是为了保护隐私) 用 private 关键字将需要保护的成员变量进行修饰private int age; 一旦使用 private 修饰后 只能在本类中调用 此时若想实现其他类调用 需要如下操作 在含有 private 修饰的类中/*向 age 传入数据*/public void setAge(int num){ age =原创 2021-04-06 16:44:45 · 93 阅读 · 0 评论 -
Java中的API
API 概述和使用步骤什么是 API简单来说 就是 JDK 已经提前准备好的类供用户使用 的字典 我们可以通过查看 API 学习这些类的使用方法键盘输入的类 Scanner功能:可以实现键盘输入数据,到程序当中引用类型的一般使用步骤:1.导包import. 包路径.类名称;如果需要使用的目标类,和当前类位于同一个包下,则可以省略导包语句不写只有 Java.lang 包下的内容不需要导包,其他包都需要 import语句2.创建类名称 对象名 = new 类名称( );3.使用对象名原创 2021-03-25 20:59:24 · 86 阅读 · 0 评论 -
Java中的数组
Java中的数组数组的特点:1.数组是一种引用数据类型2.数组当中的多个数组,类型必须统一3.数组的长度在程序运行的期间不可改变数组的初始化:在内存当中创建一个数组,并且赋予一些默认值 分为:1.动态初始化(指定长度) ------未赋值2.静态初始化(指定内容) ------直接赋值数组的定义格式一:动态初始化数组格式:数据类型 [ ] 数组名称 = new 数据类型 [ 数组长度 ]int []a = new int [5];数组的定义格式二:静态初始化基本格式:数据类原创 2021-03-21 21:41:01 · 82 阅读 · 0 评论 -
Java中的方法
方法方法的格式:方法中: 参数就是进入方法的数据 返回值就是从方法中出来的数据定义方法的完整格式:修饰符 返回值类型 方法名称(参数类型 参数名称,…){ 方法体 return 返回值;}方法的三种调用:1.单独调用2.打印调用3.赋值调用这里演示一下赋值调用public class Demo{ public static void main(String[] args){ int r1 = add(1,2); System.out原创 2021-03-21 19:53:17 · 96 阅读 · 0 评论 -
Java中的流程控制:
Java中的流程控制:顺序结构:public class Demo{ public static void main(String[] args){ System.out.println("one"); System.out.println("two"); System.out.println("three"); }}运行结果:(从上至下显示 即顺序结构)判断结构:判断语句有:if 语句public class Demo{原创 2021-03-19 21:20:32 · 66 阅读 · 0 评论 -
Java中的方法
Java中的方法方法的概述:方法就是将一个功能抽取出来,把代码单独定义在一对大括号内,形成一个单独的功能。当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的问题。方法的定义:定义一个方法的格式:/*初学的基本格式*/public static void 方法名称(){ 方法体}/*方法变量的命名规则和变量一样,使用小驼峰命名法方法体:大括号内可以包含任意条语句*/注意事项:1.方法定义的先后顺序无所谓。2.方法的定义不能有嵌套包含关系原创 2021-03-19 20:05:34 · 90 阅读 · 0 评论 -
Java中的逻辑运算符与三元运算符
Java中的逻辑运算符与三元运算符Java中的逻辑运算符包括:1.与 (并且)&& 有假则假2.或 (或者)|| 有真则真3.非 (取反)!public class Demo{ public static void main(String[] args){ System.out.println(true && false); System.out.println(false || true);原创 2021-03-18 21:39:11 · 230 阅读 · 0 评论 -
Java中的比较运算符
Java中的比较运算符包括:’ == ’ 等于 若相等输出结果是true’ < ’ 小于 若小于输出结果是true’ > ’ 大于 若大于输出结果是true’ >= ’ 大于等于 若大于等于成立输出结果是true’ <= ’ 小于等于 若小于等于成立输出结果是true’ != ’ 不等于 若不等于成立输出结果是truepublic class Demo{ public static void main(原创 2021-03-18 20:30:33 · 360 阅读 · 0 评论 -
Java中的赋值运算符
Java中的赋值运算符Java中的赋值运算符分为1.基本赋值运算符 = 代表将右侧数据赋值给左侧变量2.复合赋值运算符 常见五种复合赋值运算符: += -= *= /= %= /*以 %= 为例*/ public class Demo{ public static void main(String[] args){ int e = 120; e %= 7; /*相当于 e = e % 7 *原创 2021-03-18 20:20:19 · 212 阅读 · 0 评论 -
Java 中的算术运算符
Java 中的算术运算符Java中的算术运算符包括:加(+) 减(-) 乘(*) 除(/) 取模(%) 自增自减(++ --)对于打印语句中 执行顺序为先进行算术运算再打印System.out.println("1 + 2"); 注意事项:一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种。比如:int x = 10double result = x + 2.5; (由于double类型参与运算中 所以值应该用double定义)byte int char 类型在运原创 2021-03-18 14:12:51 · 501 阅读 · 2 评论