![](https://img-blog.csdnimg.cn/0f592cf0f8274bc3917a0140460fce23.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
文章平均质量分 93
学习java过程中的笔记
Axuer_Li
菜菜人写代码
展开
-
Java笔记(三十三):JDBC、ResultSet、PreparedStatement、JDBC与事务、连接池、C3P0、Druid、Apache-DBUtils
nextprevious/*** @author 韩顺平* 演示statement 的注入问题*///让用户输入管理员名和密码System.out.print("请输入管理员的名字: ");//next(): 当接收到 空格或者 ' 就是表示结束// 老师说明,如果希望看到SQL注入,这里需要用nextLineSystem.out.print("请输入管理员的密码: ");//通过Properties对象获取配置文件的信息//获取相关的值。原创 2023-08-08 08:53:07 · 214 阅读 · 0 评论 -
Java笔记(三十二):MySQL(下)-- 事务、索引、引擎、视图、MySQL管理
DML: 添加插入删除【⭐】简而言之:事务是一组操作的集合,它是一个不可分割的工作单位。事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。当执行事务操作时,mysql会在表上加锁,防止其他用户改表的数据索引(index):是帮助数据库高效获取数据的数据结构。简单来讲,就是使用索引可以提高查询的效率。【表类型由存储引擎决定】当使用子句创建视图时,MySQL会通过视图检查正在更改的每个行,例如 插入,更新,删除,以使其符合视图的定义。原创 2023-08-05 19:45:53 · 156 阅读 · 0 评论 -
Java笔记(三十一):MySQL(中)--查询DQL、单表查询、函数、多表查询、查询结果合并
当selcet中有聚合函数时,看起来是 select 先执行,因为后面having可以用到selcet聚合函数后面的别名但实际上还是select 后执行,如果不是聚合函数或者其他函数的别名时测试数据。原创 2023-08-05 19:45:40 · 347 阅读 · 0 评论 -
Java笔记(三十):MySQL(上)-- 数据库、MySQL常用数据类型、DDL、DML、多表设计
IDEA有个Database模块,点一下,连接上MySQL就行(1)调出查询界面。原创 2023-08-05 19:45:24 · 276 阅读 · 0 评论 -
Java笔记(二十九):反射、Class类、类加载过程、通过反射获取类结构信息、反射调用构造器创建对象、反射访问类中的成员
(1)Class也是类,因此也继承Object类;(2)Class类对象不是new出来的,而是系统创建的(类加载);具体来说,是通过ClassLoader类的loadClass创建(3)对于某个类的Class类对象,在内存中只有一份,因为类只加载一次且类加载是同步机制,只能有一个线程加载这个类;比如,先用new一个对象后,再用反射forName去构建Class类型对象,不会再进入ClassLoader类的loadClass方法。原创 2023-08-02 13:12:43 · 247 阅读 · 0 评论 -
Java笔记(二十八):多用户即时通信系统【下】(功能实现--私聊/群聊发文件/服务端推送消息/离线信息存储接收、虚拟机作为服务端代码修改)
QQview类:新增对象属性,调用新增类的新方法MessageClientService类:新增类ClientConnectServerThread类:新增类型判断。原创 2023-08-01 22:10:29 · 234 阅读 · 0 评论 -
Java笔记(二十七):多线程即时通信系统【上】(需求分析、设计、功能实现--用户登录/拉取在线用户列表/无异常退出系统)
需求分析→设计阶段→实现阶段→测试阶段→实施阶段→维护阶段。原创 2023-08-01 14:19:06 · 207 阅读 · 0 评论 -
Java笔记(二十六):网络编程、IP地址、InetAddress类、TCP和UDP、Socket套接字、TCP&UDP网络编程
(1)套接字(Socket)开发网络应用程序被广泛采用,以至于成为事实上的标准;(2)通讯的两端都要有Socket,是两台机器之间的通讯端点;(3)网络通信其实就是Socket间的通信;(4)Socket允许程序把网络连接当成一个流,数据在两个Socket间通过IO传输(理解成客户端和服务端的插头)(5)一般主动发起通信的应用程序属于客户端等待通信请求的为服务端。① 基于客户端-服务端的网络通信;② 底层使用的是TCP/IP协议;③ 应用场景举例:客户端发送数据,都无端接受并显示控制台;原创 2023-07-31 18:34:30 · 382 阅读 · 0 评论 -
Java笔记(二十五):坦克大战【三】(IO流---存盘退出 / 继续上局、碰撞检测---防止坦克重叠)
IO流 - 应用到坦克大战一、坦克大战6.0版1、防止坦克重叠运动当前坦克向上时:当左上角和右上角进入敌方坦克区域,则视为重叠当前坦克向左时:当左上角和左下角进入敌方坦克区域,则视为重叠当前坦克向下时:当左下角和右下角进入敌方坦克区域,则视为重叠当前坦克向右时:当右上角和右下角进入敌方坦克区域,则视为重叠变化:EnemyTank:增加成员Vector enemys ,用于接收myPanel的Vector编写方法isTouchEnemyTank,判断当前这个敌人的坦克,是否和 ane原创 2023-07-30 10:52:23 · 258 阅读 · 0 评论 -
Java笔记(二十四):IO流、文件、Input/OutputStream、Reader、Writer、节点流处理流、序列化反序列化、标准输入输出流、转换流、打印流、Properties类
①//根据路径构建一个File对象;②//根据父目录文件+子路径构建一个File对象;③//根据父目录+子路径构建一个File对象;④ 使用文件对象名.createNewFile()创建新文件。节点流可以从一个特定的数据源【数据源就是存放数据的地方】读写数据,常见节点流如FileReader、FileWriter;节点流是比较底层的流(直接对数据进行操作)BufferedInputStream是字节流,在创建BufferedInputStream时,会创建内部缓冲区数组。/**原创 2023-07-29 11:24:09 · 552 阅读 · 0 评论 -
JAVA笔记(二十三):坦克大战【二】(线程---子弹发射 / 敌人坦克自发移动 / 坦克与子弹消失、Vector集合---多线程对象存储、图片导入与绘制)
线程 - 应用到坦克大战一、坦克大战3.0版本1、增强功能 用户按下J键,我方坦克发射一颗子弹2、思路3、实现代码Shot类① 发射相当于一个子功能,且需要不断发射,所以当作一个线程 --> 实现Runnable② 在run方法中是实现子弹移动–>需要子弹方向direct③ 且需要不停地自动移动–>while(true)控制 -->在碰壁时退出循环④ 必须休眠,不然会导致还没有重绘,子弹就碰壁销毁//把发射作为一个线程public class Shot原创 2023-07-26 15:04:26 · 536 阅读 · 0 评论 -
JAVA笔记(二十二):多线程基础、Thread、Runnable、守护线程、线程生命周期、线程同步、互斥、死锁、释放锁
①线程是由进程创建的,是进程的一个实体;② 一个进程可以拥有多个线程,就比如迅雷可以同时(包括并发和并行)下载多个文件。③进程是资源分配的基本单位,线程是调度的基本单位(1)Java语言中,引入了对象互斥锁(锁在对象上,由线程去抢夺锁)的概念,来保证共享数据操作的完整性;(2)每个对象都对应于一个可称为“互斥锁”的标记,这个标记用来保证在任意时刻,只能有一个线程访问该对象;原创 2023-07-25 21:02:38 · 151 阅读 · 0 评论 -
JAVA笔记(二十一):坦克大战【一】(Java绘图----绘制坦克、事件处理机制----坦克移动)
在这里,第一次在屏幕显示,所以系统自动调用。原创 2023-07-24 10:59:08 · 1039 阅读 · 0 评论 -
JAVA笔记(二十):泛型、JUnit代码测试工具(@Test)
泛(广泛)型(类型)一句话:泛型可以表示其他数据类型,表示什么数据类型由程序员指定(E = Integer或者Dog或者String)(1)泛型又称参数化类型,是JDK5.0出现地新特性,解决数据类型的安全性问题;(2)在类声明或实例化时只要制定好需要的具体的类型即可;(3)Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常,同时,代码更简洁、健壮;原创 2023-07-23 16:48:27 · 759 阅读 · 0 评论 -
JAVA笔记(十九):Set(HashSet...)、Map(HashMap...)、Collections工具类
① HashMap底层维护了Node类型的数组table,默认为null;② 当创建对象时,将加载因子(loadfactor)初始化为0.75;③ 当添加key-val时,通过key的哈希值得到在table的索引,然后判断该索引处是否有元素如果没有元素则直接添加。如果该索引处有元素,继续判断该元素的key和准备加入的key是否相等如果相等,则直接替换val如果不相等需要判断是树结构还是链表结构,做出相应处理。如果添加时候发现容量不够,则需要扩容;④第一次添加。原创 2023-07-23 12:16:47 · 144 阅读 · 0 评论 -
JAVA笔记(十八):集合、Collection、List、ArrayList、Vector、LinkedList
下面是对 Collection 的细化前面 Collection 的方法,是 List 和 Set 接口都有的现在讲只针对 List 的方法① List集合类中元素有序(即添加顺序和取出顺序一致)、且可重复;② List集合中的每个元素都有其对应的顺序索引(即对于List容器中的每个元素,都有一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素)即支持索引;//hsp③ List接口的实现类不止有ArrayList、LinkedList、Vector,还有很多(1)原创 2023-07-21 21:43:37 · 169 阅读 · 0 评论 -
JAVA笔记(十七):Math类、日期类、System类、Arrays类、BigInteger类、BigDecimal类、常用类章作业
Calendar是一个抽象类, 并且构造器是private可以通过 getInstance() 来获取实例//创建日历类对象 System . out . println("c=" + c);提供大量的方法和字段提供给程序员//1.获取日历对象的某个日历字段 System . out . println("年:" + c . get(Calendar . YEAR));System . out . println("月:" +(c . get(Calendar . MONTH) + 1));原创 2023-07-21 15:50:27 · 96 阅读 · 0 评论 -
JAVA笔记(十六):包装类、String类、StringBuffer、StringBuider
重点:String、StringBuffer、StringBuilder的区别和使用场景原创 2023-07-18 21:51:57 · 264 阅读 · 0 评论 -
JAVA笔记(十五):枚举类、注解、异常
不需要提供setXxx方法,因为枚举对象值通常为只读对枚举对象/属性使用final+static修饰,实现底层优化(类不用加载)枚举对象名通常使用全部大写,常量的命名规范枚举对象根据需要,也可以有多个属性} } //演示自定义枚举实现 class Season {原创 2023-07-18 12:20:23 · 433 阅读 · 0 评论 -
JAVA笔记(十四):接口、内部类
重点:匿名内部类、接口的使用原创 2023-07-16 21:21:07 · 219 阅读 · 0 评论 -
JAVA笔记(十三):类变量和类方法、main方法深入理解、代码块、单例设计模式、final关键字、抽象类抽象方法
main方法是虚拟机调用(java虚拟机和main方法不在同一个包)==》解释为什么是publicJava虚拟机需要调用类的main()方法,所以该方法的访问权限必须是publicjava虚拟机在执行main()方法时不必创建对象,所以该方法必须是static代码块又称初始化块,属于类中的成员。没有方法名,没有返回,没有参数,只有方法体。不用通过对象或类显示调用,而是加载类时,或创建对象时隐式调用。(静态代码块在类加载时就会调用一次,且仅调用一次)(普通代码块在创建对象时就会调用一次,可调多次)原创 2023-07-16 10:25:13 · 198 阅读 · 0 评论 -
JAVA笔记(十二):房屋出租系统
主菜单新增房源查找房屋删除房屋修改房源如果不希望修改某个信息,则直接回车即可房屋列表退出系统。原创 2023-06-29 21:17:57 · 519 阅读 · 0 评论 -
JAVA笔记(十一):断点调试、零钱通项目、章作业
4. 支持在断点调试过程中,动态下断点。可以在自身的代码中下断点,也可以在系统代码中下断点。y/n”,必须输入正确的y/n,否则循环输入指令,直到输入y或者n。多态:方法或对象具有多种形态,是OOP的第三大特征,是建立在封装和继承基础之上。② 在收益入账和消费时,判断金额是否合理,并给出相应的提示。可以完成收益入账,消费,查看明细,退出系统等功能。注意:一段代码,完成一个小功能,尽量不要混在一起。思路:(1)可以把收益入账和消费,保存到数组。的条件,然后给出提示,提示完直接break。原创 2023-06-29 10:13:57 · 257 阅读 · 0 评论 -
JAVA学习笔记(十):java动态绑定机制、super和this比较、方法重写和重载、Object类(equals、hashCode、toString、finalize)
super代表父类的引用,用于访问父类的属性、方法、构造器。简单来说就是子类的方法和父类的方法一摸一样,那么就说子类的这个方法覆盖了父类的方法。C->B->A,C中hi()和A中的hi()一样那么就说C的hi()覆盖了A的hi()方法覆盖会导致调用的时候,会只调用子类的hi()方法,不会调用父类的hi()方法。原创 2023-06-28 11:59:07 · 165 阅读 · 0 评论 -
JAVA学习笔记(九):面向对象的三大特征
很重要很重要,尤其继承和多态原创 2023-06-16 16:39:08 · 180 阅读 · 0 评论 -
JAVA学习笔记(八):IDEA的使用、包、四种访问修饰符
包括IDEA常用快捷键、包的概念、四种访问修饰符的访问范围(重点)原创 2023-06-16 14:27:29 · 276 阅读 · 0 评论 -
JAVA学习笔记(七):方法重载、可变参数、局部变量和全局变量作用域、构造器、this关键字、练习题(数据异常处理、复用构造器、每次调用方法前属性的修改、猜拳游戏)
①重点:局部变量和全局变量的作用域、对象创建的流程分析 ②练习题:数据异常处理(返回null),每次调用方法前如果需要修改对象的属性,应该调用另一个方法实现属性修改原创 2023-04-23 12:33:12 · 251 阅读 · 1 评论 -
JAVA学习笔记(六):类和对象(内存布局、属性、成员方法传参机制)、克隆对象、递归(阶乘、斐波那契、猴子吃桃、迷宫、汉诺塔、八皇后)
①类和对象 ②递归 ③经典习题:斐波那契、汉诺塔、迷宫、八皇后原创 2023-04-21 14:00:27 · 198 阅读 · 0 评论 -
JAVA学习笔记(五):数组(拷贝、翻转、扩容、缩容)、排序(冒泡)、查找、二维数组(杨辉三角)、向数组中插入一个元素
重点:数组和二维数组的存储机制例子:杨辉三角、向升序数组中插入一个数原创 2023-04-21 07:47:32 · 261 阅读 · 0 评论 -
JAVA学习笔记(四):循环结构(for\while等)、跳转控制(break\continue\return)、随机数(random)
练习题:空心金字塔、水仙花数、每N个数据为一行打印原创 2023-04-20 09:15:21 · 155 阅读 · 0 评论 -
JAVA学习笔记(三):运算符、标识符、键盘输入(Scanner)、进制、原码反码补码
原码反码补码--重点原创 2023-04-20 09:13:19 · 148 阅读 · 0 评论 -
JAVA学习笔记(二):数据类型、自动类型转换、强制类型转换、基本数据类型和String类型互转
主要是类型转换会有一些坑原创 2023-04-20 09:12:34 · 227 阅读 · 0 评论 -
java学习笔记(一):java特性、JDK\JRE\JVM、转义字符、注释、JavaDoc文档
JDK\JRE\JVM的关系原创 2023-04-20 07:41:01 · 118 阅读 · 1 评论