
JAVA笔记
文章平均质量分 64
本专栏内容为自学Java笔记,里面大部分内容来自B站视频bjpowernode,笔记内容有限,详细请看原视频讲解
BerglingYY
这个作者很懒,什么都没留下…
展开
-
Java——GUI
目录AWT内容Frame框架创建窗口Frame框架属性设置封装框架Panel面板创建PanelPanel基础属性设置将Panel放入(添加至)Frame中监听事件,监听窗口关闭事件 System.exit(0)适配器模式:Adapter布局管理器按钮 Button流式布局东西南北中Border(边框、边界)表格布局Grid事件监听添加监听器两个按钮实现一个监听事件输入框事件监听创建文本框获取文本框输入消...原创 2022-05-08 11:03:16 · 1465 阅读 · 0 评论 -
Java——集合补充(栈、队列)
Stack类型:声明:Stack<Character> stack = new Stack<>();压栈 stack.push('p'); stack.push('r'); stack.push('c');访问栈顶元素(不删除) System.out.println(stack.peek());整个栈内元素弹栈 while (!stack.empty()){原创 2022-05-03 17:59:59 · 477 阅读 · 0 评论 -
JDBC——MySQL
JDBC概述1、JDBC是什么? Java DataBase Connectivity(Java语言连接数据库)2、JDBC的本质是什么? JDBC是SUN公司制定的一套接口(interface) java.sql.*; (这个软件包下有很多接口。) 接口都有调用者和实现者。 面向接口调用、面向接口写实现类,这都属于面向接口编程。 为什么要面向接口编程? 解耦合:降低程序的耦合度,提高程序的扩展力。 多态机制...原创 2022-04-15 21:05:15 · 2645 阅读 · 1 评论 -
JAVA——反射机制(上)
反射机制概述比较简单,因为只要会查帮助文档,就可以了。 1、反射机制有什么用? 通过java语言中的反射机制可以操作字节码文件。 优点类似于黑客。(可以读和修改字节码文件。) 通过反射机制可以操作代码片段。(class文件。) 2、反射机制的相关类在哪个包下? java.lang.reflect.*; 3、反射机制相关的重要的类有哪些?java.lang.Class:代表整个字节码,代表一个...原创 2022-04-02 10:59:51 · 183 阅读 · 0 评论 -
Java——注解/注释
注解概述 1、注解,或者叫做注释类型,英文单词是:Annotation 2、注解Annotation是一种引用数据类型。编译之后也是生成xxx.class文件。 3、怎么自定义注解呢?语法格式? [修饰符列表] @interface 注解类型名{ } 4、注解怎么使用,用在什么地方? 第一:注解使用时的语法格式是: @注解类型名 第二:注解可以出现在类上、...原创 2022-04-03 17:49:26 · 1488 阅读 · 0 评论 -
Java——反射机制(下)
目录反射Method反编译Method(了解)反射机制调用方法反射Costructor反射机制调用构造方法获取父类和父接口反射Method用户登录类package lit.jxxxy.ry15.java.thread.service;/** * @author 华为 */public class UserService { /** *Login Method * @param name UserName * @par原创 2022-04-03 15:38:27 · 719 阅读 · 0 评论 -
Java——多线程(下)——线程安全
解决线程安全问题 是一上来就选择线程同步吗?synchronized 不是,synchronized会让程序的执行效率降低,用户体验不好。 系统的用户吞吐量降低。用户体验差。在不得已的情况下再选择 线程同步机制。第一种方案:尽量使用局部变量代替“实例变量和静态变量”。第二种方案:如果必须是实例变量,那么可以考虑创建多个对象,这样 实例变量的内存就不共享了。(一个线程对应1个对象,100个线程对应100个对象, 对象不共享,就没...原创 2022-03-29 20:00:11 · 120 阅读 · 0 评论 -
JAVA——死锁
死锁现象死锁代码要会写。一般面试官要求你会写。只有会写的,才会在以后的开发中注意这个事儿。因为死锁很难调试。死锁测试:package lit.jxxxy.ry15.java.thread.deadlock;public class DeadLock { public static void main(String[] args) { Object o1 = new Object(); Object o2 = new Object(); ..原创 2022-03-27 20:30:17 · 120 阅读 · 0 评论 -
JAVA——多线程(中) synchronized
目录线程安全为什么数据安全问题非常重要引例:多线程并发对同一个账户进行取款产生线程安全问题条件如何解决线程安全问题同/异步编程模型异步编程模型:同步编程模型:模拟银行账户(非线程安全)模拟银行账户(线程安全)synchronized(同步)存在线程安全问题的变量synchronized出现在实例方法上StringBulider和StringBuffer的选择总结面试题第一题第二题第三题线程安全为什么数据安全问题非常重要.原创 2022-03-27 20:13:55 · 196 阅读 · 0 评论 -
Java——线程的调度
1、(这部分内容属于了解)关于线程的调度 1.1、常见的线程调度模型有哪些? 抢占式调度模型: 那个线程的优先级比较高,抢到的CPU时间片的概率就高一些/多一些。 java采用的就是抢占式调度模型。 均分式调度模型: 平均分配CPU时间片。每个线程占有的CPU时间片时间长度一样。 平均分配,一切平等。 有一些编程语言,线程调度模型采用的是这种方...原创 2022-03-21 17:50:48 · 563 阅读 · 0 评论 -
JAVA——多线程(上)
目录线程,进程概念进程,线程理解举例理解二者关系JVM多线程内存图多线程并发多线程并发理解举例分析多线程并发实现第一种方式:编写一个类,直接继承java.lang.Thread,重写run方法注意总结格式实现线程的第二种方式,编写一个类实现java.lang.Runnable接口。总结格式对比两种方式匿名内部类实现线程生命周期获取并修改线程线程中Sleep方法Sleep方法使用Sleep面试题终止程序的睡眠...原创 2022-03-21 16:52:49 · 156 阅读 · 0 评论 -
JAVA——IO+Properties的联合应用
非常好的一个设计理念: 以后经常改变的数据,可以单独写到一个文件中,使用程序动态读取。 将来只需要修改这个文件的内容,java代码不需要改动,不需要重新 编译,服务器也不需要重启。就可以拿到动态的信息。 类似于以上机制的这种文件被称为配置文件。 并且当配置文件中的内容格式是: key1=value key2=value 的时候,我们把这种配置文件叫做属性配置文件。 java规范中有要求:属性配置文件建议以.prope...原创 2022-03-16 19:14:08 · 128 阅读 · 0 评论 -
JAVA——IO流(上)
IO流概述1、IO流,什么是IO? I : Input O : Output 通过IO可以完成硬盘文件的读和写。画图理解:2、IO流的分类? 有多种分类方式: 一种方式是按照流的方向进行分类: 以内存作为参照物, 往内存中去,叫做输入(Input)。或者叫做读(Read)。 从内存中出来,叫做输出(Output)。或者叫做写(Write)。...原创 2022-03-14 18:23:23 · 1098 阅读 · 0 评论 -
JAVA——collections工具类
java.util.Collection 集合接口java.util.Collections 集合工具类,方便集合的操作。线程安全 // ArrayList集合不是线程安全的。 List<String> list = new ArrayList<>(); // 变成线程安全的 Collections.synchronizedList(list);排序 list.add("abf");原创 2022-03-06 11:17:46 · 115 阅读 · 0 评论 -
JAVA——Tree Set
1、TreeSet集合底层实际上是一个TreeMap2、TreeMap集合底层是一个二叉树。3、放到TreeSet集合中的元素,等同于放到TreeMap集合key部分了。4、TreeSet集合中的元素:无序不可重复,但是可以按照元素的大小顺序自动排序。称为:可排序集合。数据库中有很多数据: userid name birth ------------------------------------- 1 zs 1980-11-11...原创 2022-03-06 11:04:26 · 115 阅读 · 0 评论 -
JAVA——哈希表
目录HashMap集合:原理图:非常重要!!!重写hashCode()和equals()方法总结HashMap和HashTable的区别Properties集合HashMap集合:1、HashMap集合底层是哈希表/散列表的数据结构。 2、哈希表是一个怎样的数据结构呢? 哈希表是一个数组和单向链表的结合体。 数组:在查询方面效率很高,随机增删方面效率很低。 单向链表:在随机增删方面效率较高,在查询方面效率...原创 2022-03-03 21:08:21 · 8728 阅读 · 2 评论 -
JAVA——Map集合
回顾内存:Map接口常用方法 1、Map和Collection没有继承关系。 2、Map集合以key和value的方式存储数据:键值对 key和value都是引用数据类型。 key和value都是存储对象的内存地址。 key起到主导的地位,value是key的一个附属品。 3、Map接口中常用方法: V put(K key, V value) 向Map集合中添加键值对 V get(Objec...原创 2022-03-02 17:58:46 · 253 阅读 · 0 评论 -
JAVA——set集合接口(演示)
HashSet集合 1、存储时顺序和取出的顺序不同。 2、不可重复。 3、放到HashSet集合中的元素实际上是放到HashMap集合的key部分了。 // 演示一下HashSet集合特点 Set<String> strs = new HashSet<>(); // 添加元素 strs.add("hello3"); strs.add("hello4"...原创 2022-03-01 18:04:24 · 250 阅读 · 0 评论 -
JAVA——for each
JDK5.0之后推出了一个新特性:叫做增强for循环,或者叫做foreach以下是语法:for(元素类型 变量名 : 数组或集合){ System.out.println(变量名);}一般for循环: // int类型数组 int[] arr = {432,4,65,46,54,76,54}; // 遍历数组(普通for循环) for(int i = 0; i < arr.length; i++) { ...原创 2022-03-01 17:57:59 · 377 阅读 · 0 评论 -
JAVA——泛型机制
承接上篇Collection泛型概述1、JDK5.0之后推出的新特性:泛型不使用泛型机制,分析程序存在缺点 List myList = new ArrayList(); // 准备对象 Cat c = new Cat(); Bird b = new Bird(); // 将对象添加到集合当中 myList.add(c); myList.add(b); //.原创 2022-03-01 17:49:38 · 121 阅读 · 0 评论 -
JAVA——集合
集合纲要什么是集合?有什么用?1、 数组其实就是一个集合。集合实际上就是一个容器。可以来容纳其它类型的数据。 集合为什么说在开发中使用较多? 集合是一个容器,是一个载体,可以一次容纳多个对象。 在实际开发中,假设连接数据库,数据库当中有10条记录, 那么假设把这10条记录查询出来,在java程序中会将10条 数据封装成10个java对象,然后将10个java对象放到某一个 ...原创 2022-03-01 17:09:02 · 2691 阅读 · 0 评论 -
JAVA——Exception(异常)
异常机制概述:什么是异常,java提供异常处理机制有什么用int a = 10;int b = 0;// 实际上JVM在执行到此处的时候,会new异常对象:new ArithmeticException("/ by zero");// 并且JVM将new的异常对象抛出,打印输出信息到控制台了。int c = a / b;System.out.println(a + "/" + b + "=" + c);// 此处运行也会创建一个:ArithmeticException类型的异常对象。原创 2022-02-23 18:49:28 · 3137 阅读 · 0 评论 -
JAVA—— E n u m(枚举)
引例:这个案例没有使用java中的枚举,分析以下程序,在设计方面有什么缺陷? 以下代码可以编译,也可以运行。这些都没有问题。 就是设计上你觉得有什么缺陷? 需求(这是设计者说的!):以下程序,计算两个int类型数据的商,计算成功返回1,计算失败返回0 @param a int类型的数据 @param b int类型的数据 @return 返回1表示成功,返回0表示失败!public static int divide(int a, int...原创 2022-02-22 23:01:24 · 177 阅读 · 0 评论 -
JAVA——Random(随机数)
故名意思生成随机数import java.util.Random;.nextInt(); // 创建随机数对象 Random random = new Random(); // 随机产生一个int类型取值范围内的数字。 int num1 = random.nextInt();.nextInt(int index); // 产生[0~100]之间的随机数。不能产生101。 // nex.原创 2022-02-22 22:02:42 · 831 阅读 · 0 评论 -
JAVA——Number(数字类)
关于数字的格式化: DecimalFormatjava.text.DecimalFormat专门负责数字格式化的。使用前需先调用该类;import java.text.DecimalFormat;DecimalFormat df = new DecimalFormat("数字格式");数字格式有哪些# 代表任意数字, 代表千分位. 代表小数点0 代表不够时补0 ###,###.## 表示:加入千分位,保留2个小数...原创 2022-02-22 21:39:15 · 2102 阅读 · 0 评论 -
JAVA——DATE
在 java.util.Date; 文件中存在日期类获取系统当前时间(精确到毫秒) // 直接调用无参数构造方法就行。 Date nowTime = new Date(); System.out.println(nowTime); //Tue Feb 22 16:48:53 CST 2022说明Date类中已经重写过toString()方法日期格式化(SimpleDateFormat)但这种“ Tue Feb 22 16:48:53 CST原创 2022-02-22 21:14:37 · 150 阅读 · 0 评论 -
JAVA——八种基本数据类型对应的包装类
java中为8种基本数据类型又对应准备了8种包装类型。8种包装类属于引用数据类型,父类是Object。思考:为什么要再提供8种包装类呢? 因为8种基本数据类型不够用。 所以SUN又提供对应的8种包装类型。引例:有没有这种需求:调用doSome()方法的时候需要传一个数字进去。但是数字属于基本数据类型,而doSome()方法参数的类型是Object。可见doSome()方法无法接收基本数据类型的数字。那怎么办呢?可以传一个数字对应的包装类进去。 // ...原创 2022-02-22 16:35:09 · 1498 阅读 · 0 评论 -
JAVA——String
String字符串的存储原理关于Java JDK中内置的一个类:java.lang.String1、String表示字符串类型,属于引用数据类型,不属于基本数据类型。 2、在java中随便使用双引号括起来的都是String对象。例如:"abc","def","hello world!",这是3个String对象。 3、java中规定,双引号括起来的字符串,是不可变的,也就是说"abc"自出生到最终死亡,不可变,不能变成"abcd",也不能变成"ab" 4、在JDK当中...原创 2022-02-21 22:19:41 · 762 阅读 · 0 评论 -
JAVA——Arrays
数组 1、常见的算法: 排序算法: 冒泡排序算法 选择排序算法 查找算法: 二分法查找 以上算法在以后的java实际开发中我们不需要使用的。 因为java已经封装好了,直接调用就行。 只不过以后面试的时候,可能会有机会碰上。 2、算法实际上在java中不需要精通,因为java中已经封装好了, 要排序就...原创 2022-02-21 03:41:06 · 292 阅读 · 0 评论 -
JAVA——数组
目录Array基础概念一维数组遍历:main方法上面的“String[] args”的作用代码理解:一维数组的扩容代码测试:二维数组总结Array基础概念 1、Java语言中的数组是一种引用数据类型。不属于基本数据类型。数组的父类是Object。 2、数组实际上是一个容器,可以同时容纳多个元素。(数组是一个数据的集合。) 数组:字面意思是“一组数据” 3、数组当中可以存储“基本数据类型”的数据,也可以存储“引用数据类型...原创 2022-02-21 01:17:53 · 598 阅读 · 0 评论 -
JAVA——匿名内部类
匿名内部类:原创 2022-02-20 17:14:24 · 127 阅读 · 0 评论 -
JAVA——Object
JDK类库的根类:Object这个老祖宗类中的方法我们需要先研究一下,因为这些方法都是所有子类通用的。任何一个类默认继承Object。就算没有直接继承,最终也会间接继承。对于Object原文是如此描述的:Class Object is the root of the class hierarchy. Every class has Object as a superclass. All objects, including arrays, implement the methods of ..原创 2022-02-20 16:27:05 · 170 阅读 · 0 评论 -
JAVA——接口
接口基础概念: 1、接口也是一种引用数据类型。编译之后也是一个class字节码文件。 2、接口是完全抽象。(抽象类是半抽象。)或者说接口是特殊的抽象类 3、接口的定义: [修饰符列表] interface 接口名{ } 4、接口支持多继承,一个接口可以继承多个接口。//定义接口interface A{}interface B{}//一个接口可以继承多个接口。int...原创 2022-02-19 22:19:36 · 1411 阅读 · 0 评论 -
JAVA——抽象类
类到对象是实例化,对象到类是抽象。 抽象类基础语法: 1、什么是抽象类: 类与类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类。 类本身是不存在的,所以抽象类无法创建对象《无法实例化》。 2、抽象类属于什么数据类型: 抽象类也属于引用数据类型。 3、抽象类怎么定义: 语法: [修饰符列表] abstract class 类名{ 类体;...原创 2022-02-19 01:54:12 · 229 阅读 · 0 评论 -
JAVA——IDEA快捷键
psvm + Enter / mian + Enter 快速编写主方法sout + Enter 快速生成System.out.println();IDEA自动保存ctrl + y 删除一行IDEA中退出任何窗口都可以用 Esc 键alt + ins(F12) 新增任何项目模块类……fn + ctrl shift F12 窗口变大变小(没啥用)alt + ins(F12) 新增setter getter 构造方法……(shift多选)alt + ⬅/ ➡ 切换Java程序窗口原创 2022-02-18 23:31:59 · 274 阅读 · 1 评论 -
Java——super关键字
1、super是关键字,全部小写。2、super和this对比:this:this能出现在实例方法和构造方法中。this的语法: “this.” 、 “this ()”this不能使用在静态方法中。this.大部分情况下可以省略,在区分局部变量和实例变量的时候不可省略。public void setName(String name){...原创 2022-02-18 18:41:13 · 5504 阅读 · 0 评论 -
Java——访问控制权限修饰符
/*** 访问控制权限修饰符:** 1、访问控制权限修饰符来控制元素的访问范围。** 2、访问控制权限修饰符包括:* public 表示公开的,在任何位置都可以访问* protected 同包、子类(继承)可以访问* 缺省(不写) 同包可以访问* private 表示私有的,只能在本类中访问** 3、...原创 2022-02-17 21:44:57 · 543 阅读 · 0 评论 -
Java——Package and import
关于Java语言中包的机制1、包成为Package,这种机制主要为了方便管理2、Package定义: - Java源程序的第一行上编写package语句。- package只能编写一个语句。- 语法结构:package 包名;3、包名的命名规则: 公司域名倒叙 + 项目名 + 模块名 + 功能名;采用这种命名规则重名概率较低。例如:com.bjpowernode.oa.uesr.service;(com = co...原创 2022-02-17 17:33:58 · 253 阅读 · 0 评论 -
Java——final关键字
/*** 关于Java语言当中final关键字:* 1、final是一个关键字,直译"最终的",表示不可变的。* 2、final修饰的类无法被继承* 3、final修饰的方法无法被覆盖* 4、final修饰的变量一旦赋值之后,不可重新赋值* 5、final修饰的实例变量必须手动赋值,不能采用系统默认值* 6、final修饰的引用一旦指向某个对象了,不能指向其它的对象,那么被指向...原创 2022-02-16 17:39:45 · 352 阅读 · 0 评论 -
Java面向对象——多态
Eclipse中创建类时可快捷创建继承关于Java语言当中的多态语法机制/*** 1、Animal,Cat,Bird三者之间关系* Cat继承Animal* Bird继承Animal* Cat和Bird之间没有继承关系** 2、面向对象三大特征:封装 继承 多态** 3、关于多态中设计到的几个概念:* *向上转型(...原创 2022-02-16 10:55:58 · 249 阅读 · 0 评论