java笔记
文章平均质量分 56
java笔记
路宇
强大自己是解决问题的唯一方法。
展开
-
Java BasicDAO的详解
一、BasicDAO的介绍二、BasicDAO的示意图三、完成BasicDAO的简单实例1、创建BasicDAO类//开发BasicDAO,是其他DAO的父类public class BasicDAO<T> {//泛型指定具体的类型 private QueryRunner qr = new QueryRunner(); //开发通用的DML方法,针对任意的表 public int update(String sql, Object... parameter原创 2022-05-06 15:48:48 · 1383 阅读 · 2 评论 -
Java 中Apache-DBUtils类的使用详解
前言:问题引出:关闭Connection后,ResultSet结果集无法使用,ResultSet结果集不利于数据的管理。具体看下面的示意图一、首先用自己的方法把ResultSet结果集封装到ArrayList集合中代码如下public class JDBCUtilsByDruid_Use { //自己封装解决将ResultSet 封装到ArrayList中 @Test public ArrayList<Actor> testSelectToArrayList() {原创 2022-05-06 14:22:21 · 998 阅读 · 0 评论 -
Java 数据库连接池C3P0,德鲁伊(Druid)的详解
一、Java中数据库连接池的基本介绍数据库连接池的示意图二、数据库连接池的种类三、C3P0数据库连接池的使用,代码如下public class C3P0_ { //1.方式1:相关参数,在程序中指定user,url,password等 @Test public void testC3P0_01() throws Exception { //1.创建一个数据源对象 ComboPooledDataSource comboPooledDataS原创 2022-05-05 21:11:08 · 4014 阅读 · 0 评论 -
Java JDBC中的批处理SQL语句的详解
一、JDBC中批处理SQL语句的介绍二、使用批量处理和非批量处理,进行演示,看具体的耗时区别public class Batch_ { @Test public void noBatch() throws Exception { Connection connection = JDBCUtils.getConnection(); String sql = "INSERT INTO ADMIN2 VALUES(null,?,?)"; Pre原创 2022-05-05 15:14:07 · 1446 阅读 · 0 评论 -
Java JDBC程序中对于数据库事务的处理详解
一、JDBC中对于事务的介绍二、使用事务模拟经典的转账业务下面代码中演示JDBC中没有使用事务,和使用事务的两种情况//演示jdbc 中如何使用事务public class Transaction_ { //没有使用事务 @Test public void noTransaction() { //1.得到连接 Connection connection = null; //2.组织一个sql //更新记录原创 2022-05-05 14:24:03 · 889 阅读 · 0 评论 -
MySQL 中事务以及事务隔离级别的详解
一、MySQL 中事务的理解二、演示事务的基本使用DROP TABLE t27;-- 1.创建一张测试表CREATE TABLE t27(id INT,`name` VARCHAR(32));-- 2.开启事务START TRANSACTION-- 3.设置保存点SAVEPOINT a-- 执行DML操作INSERT INTO t27 VALUES(100,'tom');SELECT * FROM t27;SAVEPOINT b-- 执行DML操作INSERT I原创 2022-05-05 11:35:05 · 914 阅读 · 0 评论 -
Java 中封装JDBC连接到JDBCUtils工具类的详解
前言在JDBC操作中,获取连接和释放资源是经常使用到的,可以将其封装成到一个工具类JDBCUtils中JDBCUtils中有两个方法得到连接和关闭连接,代码如下//这是一个工具类,完成mysql的连接和关闭资源public class JDBCUtils { //定义相关的属性(4个),因为只需要一份,因此我们做成static private static String user;//用户名 private static String password;//密码 pr原创 2022-05-04 20:56:47 · 1002 阅读 · 0 评论 -
Java Jdbc的详解
一、Jdbc原理示意图二、Jdbc的概述原创 2022-05-04 16:48:41 · 1925 阅读 · 0 评论 -
Java 中线程同步机制synchronized,互斥锁,死锁,释放锁的详解
一、线程同步机制synchronized的理解二、synchronized的具体使用下面可以通过同步机制,解决多线程卖票,出现的超卖问题,代码如下public class SellTicket { public static void main(String[] args) {// SellTicket01 sellTicket01 = new SellTicket01();// SellTicket01 sellTicket02 = new SellTick原创 2022-05-01 11:29:13 · 1713 阅读 · 2 评论 -
Java 线程的生命周期(对应七大状态)
线程的生命周期线程状态的转换通过代码输出线程的状态,代码如下public class ThreadState_ { public static void main(String[] args) { T t = new T(); System.out.println(t.getName() + " 状态 " + t.getState()); t.start(); while (Thread.State.TERMINATED !=原创 2022-04-30 22:01:35 · 875 阅读 · 0 评论 -
Java 中大数的处理方案BigInteger和BigDecimal类的使用
BigInteger和BigDecimal的介绍应用场景:1、BigInteger适合保存比较大的整型2、BigDecimal适合保存精度更高的浮点型(小数)一、BigInteger类的使用详解,代码如下public class BigInteger_ { public static void main(String[] args) { //当我们编程中,需要处理很大的整数,long不够用 //可以使用BigInteger的类来搞定// lo原创 2022-04-29 11:36:44 · 840 阅读 · 0 评论 -
Java 算术运算符/,%,++的本质详解
具体看如下代码,讲解已经在代码中给出:public class Test2 { public static void main(String[] args) { //从数学来看是2.5 在java程序中,10是一个整数,2是一个整数,得到的结果也是整数为2 System.out.println(10 / 4); //2 System.out.println(10.0 / 4); //2.5 double d = 10 / 4;原创 2022-04-23 11:50:20 · 1953 阅读 · 0 评论 -
Java 中常用的转义字符
Java中常用的转义字符,看如下代码:public class ChangeChar { public static void main(String[] args) { // \t :一个制表位,表示对齐的功能 System.out.println("北京\t天津\t上海"); //\n System.out.println("jack\ntom\nmary"); // \\ System.out.p原创 2022-04-21 21:42:28 · 1058 阅读 · 0 评论 -
Java 中泛型的详解
泛型介绍:泛型又称参数化类型,是JDK5.0出现的新特性,解决数据类型的安全性问题。在类声明或者实例化时,只需要指定好需要的具体类型即可。Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCaseException异常,同时代码更加简洁,健壮。泛型的作用是:可以在类声明时通过一个标识表示类中某个属性的类型,或者是某个方法的返回值类型,又或者是参数类型。(这个具体演示代码如下)public class Generic03 { public static voi原创 2022-03-28 21:54:07 · 2639 阅读 · 0 评论 -
Java中第三代日期类LocalDateTime的详细使用
第三代日期类的概述:下面通过代码进行演示使用:public class LocalDate_ { public static void main(String[] args) { //第三日期 //1.使用now() 返回表示当前日期时间的对象 LocalDateTime localDateTime = LocalDateTime.now();//LocalDate.now();//LocalTime.now(); System.原创 2022-03-19 12:15:20 · 942 阅读 · 0 评论 -
Java IO流之Properties类的详解
前言:Properties类的基本介绍:Properties类的常见方法如下:一、使用Properties类来读取配置文件mysql.properties,具体代码如下:mysql.properties配置文件中具体内容如下:/** * 使用Properties类来读取mysql.properties文件 */public class Properties02 { public static void main(String[] args) throws IOException原创 2022-03-13 21:40:22 · 1572 阅读 · 0 评论 -
Java 中do...while()的使用
do…while语句基本格式:do {循环体语句}while(条件判断语句);完整格式:初始化语句;do{循环体语句条件控制语句}while(条件判断语句);执行流程:执行初始化语句执行循环语句执行条件控制语句执行条件判断语句,看其结果是true还是false如果为true,继续执行如果为false,循环结束回到2继续执行public class doWhileTest { public static void main(String[]原创 2022-01-15 15:54:17 · 487 阅读 · 0 评论 -
Java 中Lambda表达式的使用详解
前言:通过创建子线程的例子,来进行分析学习。public class LambdaDemo { public static void main(String[] args) {// Thread thread = new Thread(new MyRunnable());// thread.start(); //匿名内部类的方式改进// new Thread(new Runnable() {// @Over原创 2022-01-15 14:36:15 · 969 阅读 · 0 评论 -
Java 中Math类的使用
前言:Math类概述Math类包含执行基本数字运算的方法下面通过代码来演示://Math类的常用方法public class MathDemo { public static void main(String[] args) { //public static int abs(int a) :返回参数的绝对值 System.out.println(Math.abs(66)); System.out.println(Math.abs(-66)原创 2022-01-11 22:02:34 · 2775 阅读 · 0 评论 -
Java 中SimpleDateFormat类的使用
SimpleDateFormat类的介绍SimpleDateFormat类是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。日期和时间格式由日期和时间模式字符串指定,在日期和时间模式字符串中,从“A” 到 “Z” 以及从“a” 到 “z” 引号的字母被解释为表示日期或时间字符串的组件的模式字母。常用的模式字母对应关系如下:y 年M 月d 日H 时m 分s 秒SimpleDateFormat类的构造方法SimpleDateFormat():使用默认模式和日期格式Simpl原创 2022-01-10 22:15:55 · 761 阅读 · 0 评论 -
Java 中正则表达式的详解
前言:Java提供正则表达式技术,专门用于处理文本问题。简单的说:正则表达式(regular expression) 是对字符串执行模式匹配的技术。一个正则表达式,就是用某种模式去匹配字符串的一个公式。......原创 2021-12-25 17:23:32 · 4552 阅读 · 1 评论 -
Java 中位运算,原码,反码,补码的详解
首先是关于原码,反码,补码的规则的掌握二进制的最高位是符号位:0表示正数,1表示负数(口诀:0->0 1-> -)正数的原码,反码,补码都一样(三码合一)负数的反码=它的原码符号位不变,其他位取反(0->1 , 1->0)负数的补码=它的反码+1,负数的反码=负数的补码-10的反码,补码都是0java没有无符号数,换言之,java中的数都是有符号的。在计算机运算的时候,都是以补码的方式来运算的。当我们看运算结果的时候,要看他的原码下面我们就来看java中的位运原创 2021-12-04 15:41:54 · 785 阅读 · 0 评论 -
Java 中Calendar日历类的基本使用
Calendar介绍:Calendar类为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法。Calendar提供了一个类方法getInstance用于获取Calendar对象,其日历字段已使用当前日期和时间初始化。下面代码中给出Calendar类常用的方法,详细注释已经在代码中给出:public class CalendarDemo { public static void main(String[] args) { //获取Calendar对象原创 2021-11-30 21:41:23 · 3865 阅读 · 1 评论 -
Java 线程中常用的方法详解
常用方法:注意细节大家可以看一下:下面通过代码的方式,来使用上面所说的方法:public class ThreadMethod1 { public static void main(String[] args) { //测试相关的方法 T t = new T(); //设置线程名称 t.setName("筱路"); //设置线程优先级 ,这里设置最小优先级为1 t.setPriority(Thr原创 2021-11-28 21:17:55 · 381 阅读 · 0 评论 -
Java 中通知线程退出的理解
问题:启动一个线程t ,要求在main线程中去停止线程t实现代码如下,具体注释已经在代码中给出哈public class ThreadExit { public static void main(String[] args) { T t = new T(); t.start(); //如果希望main主线程,去控制t线程的终止,必须修改loop //让t 退出run方法 从而终止t线程 ->通知方式 //原创 2021-11-28 20:38:17 · 425 阅读 · 0 评论 -
Java 中创建线程的两种方法实现
创建线程的两种方法:继承Thread类,重写run方法实现Runnable接口,实现run方法一、继承Thread类,创建子线程我们通过编写一个程序,来理解通过继承Thread类,来创建子线程开启一个线程,在控制台输出“"喵喵,我是小猫咪”,当输出8次,结束该线程具体代码如下,注释已经代码中给出,可以体会一下public class Thread1 { public static void main(String[] args) throws InterruptedExceptio原创 2021-11-28 16:14:05 · 1103 阅读 · 1 评论 -
Java 网络编程TCP协议之发送数据和接收数据的详解
TCP协议:传输控制协议(Transmission Control Protocol)TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。在TCP连接中必须要明确客户端和服务器端,由客户端向服务器端发出连接请求,每次连接的创建都要经历“三次握手”。三次握手: TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠。第一握手,客户端向服务器发出连接请求,等待服务器确认。第二次握手,服务原创 2021-11-27 20:51:09 · 11135 阅读 · 1 评论 -
Java 网络编程UDP协议之发送数据和接收数据的详解
UDP协议:用户数据报协议(User Datagram Protocol)UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一个台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。由于使用UDP协议消耗资源少,通信效率高,所以通常都会用于音频,视频和普通数据的传输。例如视频会议通常会采用UDP协议,因为这种情况偶尔丢一两个数据包,也不会对接收结果产生太大影响,但是在使用UDP协议原创 2021-11-26 21:30:35 · 6951 阅读 · 1 评论 -
Java 中InetAddress类的详解
介绍:InteAddress类:表示Internet协议(IP)地址下面介绍里面常用的几个方法,代码如下:public class InetAddressDemo { public static void main(String[] args) { try { //确定主机名称的IP地址,主机名称可以是机器名称,也可以是IP地址 //一般都是用IP地址 //InetAddress byName = InetAddress.ge原创 2021-11-26 20:10:00 · 3400 阅读 · 0 评论 -
Java 数组中System.arraycopy()方法和System类中相关的其他方法的使用详解
方法介绍:从指定的源数组中复制一个数组,从指定位置开始,到目标数组的指定位置。 @FastNative public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);这个方法的五个参数的具体所代码的原创 2021-11-26 11:06:13 · 1415 阅读 · 0 评论 -
Java Collection接口的子接口之Set接口及其Set接口的主要实现类HashSet,LinkedHashSet,TreeSet详解
一、Set接口的框架:1.Collection接口:单列集合,用来存储一个一个的对象2.Set接口:存储无序的,不可重复的数据 ,说白了就是高中讲的"集合"3.HashSet接口:作为Set接口的主要实现类,线程不安全的,可以存储null值4.LinkedHashSet:作为HashSet的子类,遍历其内部数据时,可以按照添加的顺序进行遍历。对于频繁的遍历操作,LinkedHashSet效率高于HashSet5.TreeSet接口:可以按照添加对象的指定属性,进行排序。二、Set集合的无序性与原创 2021-10-17 16:11:43 · 585 阅读 · 1 评论 -
Java 中Arrays工具类的使用
介绍java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比如排序和搜索)的各种算法。下面我用代码给大家演示一下主要的几个方法:具体注释已经在代码中给出 @Test public void test1(){ int[] arr1 = new int[]{1,2,3,4}; int[] arr2 = new int[]{1,3,2,4}; //判断两个数组是否相等 boolean equals = Arra原创 2021-09-11 21:12:42 · 712 阅读 · 0 评论 -
三元运算符 return mData == null ? 0 : mData.size();的含义
三元运算符三元运算符是软件编程中的一个固定格式,语法是“条件表达式?表达式1:表达式2”。使用这个算法可以使调用数据时逐级筛选。格式:如名字表示的三元运算符需要三个操作数。语法为:条件表达式?表达式1:表达式2。说明:问号前面的位置是判断的条件,判断结果为bool型,为true时调用表达式1,为false时调用表达式2。其逻辑为:“如果条件表达式成立或者满足则执行表达式1,否则执行第二个。”常用在设置默认值,例如某个值不一定存在,则判断这个值是否存在,不存在给默认值(表达式2)。?: 便是三元运原创 2021-03-30 22:13:20 · 1338 阅读 · 0 评论 -
Java的8种基本数据类型
整点型整数类型byte,short,int,longfloat,double类型布尔类型Boolean原创 2021-04-08 21:40:06 · 24269 阅读 · 0 评论 -
Java 中关于进制的详解
前言: 所有数字在计算机底层都是以二进制形式存在。对于整数,有四种表示方式:二进制:0,1 满2进1 以0b或0B开头十进制:0-9 满10进1八进制:0-7 满8进1 以数字0开头表示十六进制:0-9及A-F 满16进1,以0x或0X开头表示。此处的A-F不区分大小写。如 0x21AF+1=0X21B0......原创 2021-08-04 22:26:52 · 2591 阅读 · 0 评论 -
Java 中String类型变量的使用
理解:String属于引用数据类型,翻译为 字符串声明String类型变量时,使用一对“”String可以和八种基本数据类型变量做运算,且运算只能是连接运算“+”代码演示:@Test public void test3(){ String name="张三"; int number=2021; //学号 String s = name + number; // + 连接运算 System.out.println(s); /原创 2021-08-03 21:40:49 · 1369 阅读 · 0 评论 -
Java 基本数据类型之间的运算规则
前言:这里只讨论七种基本数据类型变量间的运算,不包含boolean类型的。1.自动类型提升:结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的。说明:此时的容量大小指的是,表示数的范围大和小。比如long占用八个字节,float占用四个字节,但是float的容量要大于long的容量。byte、short、char—>int–>long–>float–>double注意:当byte、short、char三种类型的变量做运算时,结果为in.原创 2021-08-03 20:58:47 · 1034 阅读 · 0 评论 -
Java 运算符中 前++ 和后++ 的区别详解
一、前++ 和 后++的区别:具体在代码中给出@Test public void test3() { //前++ 先自加1 ,再运算 int a = 10; int b = ++a; System.out.println("a=" + a + ",b=" + b); //后++ 先运算,再自加1 int a1 = 10; int b1 = a1++; System.原创 2021-07-31 19:28:45 · 5550 阅读 · 0 评论 -
Java 中j+=i 和 j=+i 的区别
一、j+=i 意思就是:把i获取到的值与j相加 之后再把值赋给j 更新j的值写下代码更好的理解一下:@Test public void test1() { int j = 222; for (int i = 0; i < 10; i++) { j+=i; System.out.println("j=" + j + ",i=" + i); } }输出结果,更好的验证了这一点j原创 2021-07-31 19:12:46 · 7098 阅读 · 0 评论 -
Java 中的异常处理详解
前言: Java程序在执行过程中发生的异常情况分为两类:一、 Error:Java虚拟机无法解决的严重问题,如:JVM系统内部错误,资源耗尽等严重情况比如StackOverflowError和OOM。一般不编写针对性的代码进行处理。public class ExceptionTest { public static void main(String[] args) { //1.栈溢出 java.lang.StackOverflowError// main(args原创 2021-07-22 22:01:10 · 449 阅读 · 0 评论