![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
白开水最甜
这个作者很懒,什么都没留下…
展开
-
Mybatis框架的使用
1、2、3、新建以Mapper结尾的包,在包下新建:实体类名+Mapper.xml3.1、文件作用:编写需要执行的SQL语句3.2、把xml文件理解成实现类3.3、xml文件内容<!--namespace:理解成实现类的全路径(包名加类名)--><mapper namespace="a.b"> <!--id为方法名 parameterType:定义参数类型 resultType:返回值类型 如果原创 2021-10-03 11:46:13 · 912 阅读 · 0 评论 -
MVC开发模式
1、M: model(模型)实体类和业务和dao2、V: view(视图)JSP3、C:controller(控制器)servlet作用:视图和逻辑分离mvc适用于大型项目开发原创 2021-09-05 19:12:07 · 72 阅读 · 0 评论 -
java命名规范
1、项目名:没有要求,不起中文2、包:公司域名倒写 com.bjsxt3、持久层:dao,presist,mapper4、实体:entity,model,bean,javabean,pojo5、业务逻辑:service,biz6、控制器:controller,servlet,action,web7、过滤器:filter8、异常:exception9、监听器:listener10、注释: 10.1 类上和方法是上使用文档注释 /** */ ...原创 2021-09-04 18:08:09 · 123 阅读 · 0 评论 -
水电管理项目问题总结
1、有无返回值的情况 public static String inputId(){ System.out.println("输入任何与数字无关的字符,或者不为连续的 12 位数字,都是非法的!"); String id=null; while(true){ Scanner scanner=new Scanner(System.in); System.out.println("请输入学生学号");原创 2021-08-29 11:48:15 · 84 阅读 · 0 评论 -
IDEA快捷键
Ctrl+b:查看源代码Ctrl+h:查看继承关系原创 2020-12-15 10:42:07 · 118 阅读 · 0 评论 -
数据库连接池
一、三种实现方式private static ComboPooledDataSource cpds=new ComboPooledDataSource("helloc3p0"); public static Connection getConnection1() throws Exception { Connection conn=cpds.getConnection(); return conn; } private static Data原创 2021-08-11 10:17:27 · 108 阅读 · 0 评论 -
DAO操作
1、提供customer类package jdbc_3_bean;import java.util.Date;public class Customer { private int id; private String name; private String email; private Date birth; public Customer() { } public Customer(int id, String name, .原创 2021-08-10 16:22:19 · 208 阅读 · 0 评论 -
事务的执行代码实现以及设置隔离级别
package jdbc_5_transaction;import jdbc_2_util.JDBCUtils;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;public class TransactionTest01 { public static void main(String[] args) { Connection con.原创 2021-08-10 09:53:23 · 267 阅读 · 0 评论 -
使用PreparedStatement批量插入
package jdbc_1;import jdbc_2_util.JDBCUtils;import java.sql.Connection;import java.sql.PreparedStatement;public class PreparedStatementInsertPIliang { public static void main(String[] args) throws Exception { Connection conn=null; .原创 2021-08-10 08:57:13 · 1161 阅读 · 1 评论 -
插入blob字段
package jdbc_1;import jdbc_2_util.JDBCUtils;import java.io.File;import java.io.FileInputStream;import java.sql.Connection;import java.sql.PreparedStatement;public class PreparedStatementBlob { public static void main(String[] args) throws Exc.原创 2021-08-09 12:30:30 · 185 阅读 · 0 评论 -
正则表达式
一、标准字符集合(匹配与之相同的字符)标准字符集合(大写字母是相反的意思) \d 0~9中任意一个数字 \w 字母数字下划线中的任意一个 \s 包括空格、制表符、换行符等空白字符的任意一个 . 任意一个字符(除了“\n”) [\s\S]包括"\n" 二、自定义字符集合自定义字符集合 [abc5@] 匹配a或b或c或5或@ [^abc] 匹配a、b、c之外的字符 [f-k] f~k之间的任一字原创 2021-08-02 20:49:47 · 39 阅读 · 0 评论 -
GOF23设计模式
一、单例模式1)饿汉式(调用效率高,不能延时加载)package com.bjsxt.test;//懒汉式单例模式public class SingletDemon01 { //类初始化时,立即加载类的对象(加载类时,线程天然安全) private static SingletDemon01 instance=new SingletDemon01(); private SingletDemon01(){} public static SingletDemon01 g原创 2021-07-30 11:43:08 · 150 阅读 · 0 评论 -
JVM核心机制
一、类加载全过程加载-->链接-->初始化package com.bjsxt.test;public class Demon01 { public static void main(String[] args) { A a=new A(); System.out.println(A.width); }}class A{ public static int width=100; static{ wid原创 2021-07-29 21:08:47 · 69 阅读 · 0 评论 -
动态编译
package com.bjsxt.test;import javax.tools.JavaCompiler;import javax.tools.ToolProvider;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.lang.reflect.Method;import jav.原创 2021-07-29 11:25:01 · 76 阅读 · 0 评论 -
反射机制
反射机制的关键: Class c=Class.forName(com.bjsxt.test.bean.User)将User类加载到JVM前,类的整个结构信息会放到对应的Class对象中,这个Class对象就像一面镜子一样,通过这面镜子可以看到对应类的整个信息,同一个类只有一个Class对象一、Class 对象获取package com.bjsxt.test.bean;public class Demon01 { public static void main(String[] ar原创 2021-07-29 11:05:07 · 42 阅读 · 0 评论 -
自定义注解
一、内置注解1)@Override:重写方法2)@Deprecated:遗弃的(不推荐使用)3)@SuppressWarnings:压制编译时的警告信息都定义在Java的lang包中。二、自定义注解(在一个包上右击-->new-->javaclass-->下翻找到annotation-->输入name)1、自定义注解1)定义类的注解package com.bjsxt.test.annotation;import java.lang.annotat原创 2021-07-29 10:20:20 · 193 阅读 · 0 评论 -
TCP编程
一、TCP基本步骤1)服务器端package com.sxt.tcp;//----服务器端----import java.io.DataInputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;/*TCP基本步骤*1、创建服务器套接字* 2、使用accept方法建立连接* 3、操作* 4、释放资源 */public class Server00 {原创 2021-07-27 20:39:52 · 117 阅读 · 0 评论 -
UDP在线咨询(面向对象的思想)
1)发送端package com.sxt.udp;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.*;public class TalkClient implements Runnable{ private DatagramSocket client; private BufferedReader reade.原创 2021-07-27 11:36:25 · 55 阅读 · 0 评论 -
UDP编程
一切以包裹为中心,字节数组为核心一、UDP的基本步骤:1)发送端package com.sxt.udp;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetSocketAddress;/*----发送端*1、创建数据流套接字* 2、将数据转为字节数组* 3、打包* 4、发送包*5、释放资源 */public class UdpClient { pub原创 2021-07-27 10:36:53 · 151 阅读 · 0 评论 -
爬虫原理
一、四个步骤1)获取URL2)下载3)分析4)处理可访问源代码的网站package com.sxt.loc;import java.io.*;import java.net.*;public class SpiderTest01 { public static void main(String[] args) throws IOException { //获取URL URL url=new URL("https://www.jd.原创 2021-07-25 19:39:21 · 48 阅读 · 0 评论 -
网络编程
IP地址:定位电脑端口定位:软件URL定位:网络内的每一份资源传输层协议:TCP/UDP网络分层:(TCP/IP协议集)应用层、传输层、网络层、网络接口一、IP常用类:InetAddresspackage com.sxt.loc;import java.net.InetAddress;import java.net.UnknownHostException;public class IPTest01 { public static void main(String原创 2021-07-25 19:13:49 · 95 阅读 · 3 评论 -
装饰流
一、缓冲流:BufferedInputStream和BufferedOutputStream1、字节缓冲流直接套上BufferedInputStream、BufferedOutputStream即可2、字符缓冲流:BufferedReader和BufferedWriter为了应用新增方法 readLine读一行和newLine换行符,不能使用多态,应使用BufferedReader br=new BufferedReader(new FileReader);BufferedWrit.原创 2021-07-25 10:40:02 · 123 阅读 · 0 评论 -
乱码
package com.sxt.io;import java.io.UnsupportedEncodingException;public class ContentEncode { public static void main(String[] args) throws UnsupportedEncodingException { String str ="生aa"; byte[] datas=str.getBytes(); byte[].原创 2021-07-24 11:26:34 · 270 阅读 · 0 评论 -
7.18 回顾
1、快乐影院2、快乐车票原创 2021-07-18 15:59:09 · 46 阅读 · 0 评论 -
死锁
package com.sxt.syn;public class DeadLock { public static void main(String[] args) { Girls girl1=new Girls(1); Girls girl2=new Girls(2); new Thread(girl1,"王菲").start(); new Thread(girl2,"张柏芝").start(); }}class G.原创 2021-07-18 15:56:15 · 68 阅读 · 0 评论 -
快乐影院
package com.sxt.syn;import java.util.ArrayList;import java.util.List;public class HappyCinema { public static void main(String[] args) { List<Integer> available=new ArrayList<>(); available.add(1); available.ad.原创 2021-07-18 15:40:18 · 4628 阅读 · 0 评论 -
并发-同步-三大经典案例
如果对数据只进行读,可以线程不安全如果对数据又读又写,需要保证线程安全一、抢夺车票package com.sxt.io2;//并发:一个资源有多个代理//sleep模拟网络延时,放大了问题发生的可能性public class Web12306 { public static void main(String[] args) { Tickets t=new Tickets(); new Thread(t,"小小").start();原创 2021-07-18 15:16:43 · 523 阅读 · 0 评论 -
多线程的基本信息
代理名称:Thread的名称实际名称:对象的名称package com.sxt.io2;public class InfoTest { public static void main(String[] args) throws InterruptedException { System.out.println(Thread.currentThread().isAlive()); Thread t=new Thread(new MyInfo("战斗机"),原创 2021-07-18 10:37:27 · 61 阅读 · 0 评论 -
守护线程
package com.sxt.io2;public class DaemonTest { public static void main(String[] args) { Thread t=new Thread(new You() ); t.start(); t=new Thread(new God()); t.setDaemon(true); t.start(); }}class You impl.原创 2021-07-18 10:22:07 · 59 阅读 · 0 评论 -
线程的优先级
优先级高的被调用的概率大,但不是绝对的。package com.sxt.io2;public class PriorityTest { public static void main(String[] args) { System.out.println(Thread.currentThread().getPriority());//5 Thread t1=new Thread(new MyPriority(),"aa");//5 t1.st原创 2021-07-18 09:46:52 · 68 阅读 · 0 评论 -
线程的状态
一、线程的五个状态:新生-(阻塞)-就绪-运行-死亡二、就绪状态的四种情况:1)start()2)阻塞解除-->join3)yield-->让出CPU的调度4)jvm从本地线程切换其他线程三、阻塞状态1)sleep2)join3) wait4) wtite/readpackage com.sxt.io2;public class AllState { public static void main(String[] args) thro..原创 2021-07-18 09:30:58 · 70 阅读 · 0 评论 -
多线程的阻塞(join)
一、主线程中的阻塞package com.sxt.io2;/*主线程中的阻塞 */public class YieldDemo02 { public static void main(String[] args) throws InterruptedException { Thread t=new Thread(() -> { for (int i = 0; i < 100; i++) System.o原创 2021-07-17 09:50:35 · 667 阅读 · 0 评论 -
多线程的礼让(yield)
一、package com.sxt.io2;/*yield 礼让线程,暂停线程直接进入就绪状态,不是阻塞状态* */public class YieldDemo01 implements Runnable { public static void main(String[] args) { new Thread(new YieldDemo01()).start(); for(int i=0;i<100;i++) System.out.printl.原创 2021-07-17 09:28:25 · 192 阅读 · 0 评论 -
多线程的暂停(sleep)
1.模拟休息:龟兔赛跑2.模拟延时,放大发生问题的可能性:抢夺车票3.模拟倒计时package com.sxt.io2;//倒数十秒钟import java.text.SimpleDateFormat;import java.util.Date;public class BlockedSleep { public static void main(String[] args) throws InterruptedException { //记录下当前时间原创 2021-07-17 09:11:55 · 323 阅读 · 0 评论 -
7.17 回顾
1.龟兔赛跑2.lambda推导原创 2021-07-17 08:34:44 · 59 阅读 · 0 评论 -
推导lambda线程
1.内部静态类package com.sxt.io2;public class LambdaThread { static class Test implements Runnable{ @Override public void run() { for(int i=0;i<20;i++) System.out.println("coding..."); } } public static原创 2021-07-16 23:20:34 · 58 阅读 · 0 评论 -
静态代理设计模式
package com.sxt.io2;public class StaticProxy { public static void main(String[] args) { new WeddingCompany(new You()).happyMarry(); } interface Marry{ void happyMarry(); }static class You implements Marry{ @Overrid.原创 2021-07-16 23:01:46 · 56 阅读 · 0 评论 -
多线程的实现
两种方式:1.继承Thread类-->重写run方法-->调用子类对象的start方法2.实现Runnable接口-->重写run方法-->new 一个Thread方法-->丢入子类-->调用start方法(因为Runnable接口不具有start 方法)package com.sxt.io2;/*创建线程方式一:*1、创建:继承Thread+重写run方法* 2、启动:创建子类对象+start */public class StartThre原创 2021-07-16 21:13:43 · 52 阅读 · 0 评论 -
使用Runnable接口模拟并发
1.抢购车票package com.sxt.io2;//并发:一个资源有多个代理//sleep模拟网络延时,放大了问题发生的可能性public class Web12306 implements Runnable{ private int tickets=100; @Override public void run() { while(tickets>0){ if(tickets%20==0) { .原创 2021-07-16 21:12:11 · 131 阅读 · 0 评论 -
多线程的终止
package com.sxt.io2;public class TeminateThread implements Runnable{ private String name;//加入标识 private boolean flag=true; public TeminateThread(String name) { this.name = name; } @Override public void run() { .原创 2021-07-16 16:17:42 · 56 阅读 · 0 评论