自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 Tomcat服务器

Tomcat服务器

2022-08-29 22:54:35 98 1

原创 PHP初解

双引号里是可以识别html标签的,输出的两种方式print 和java无异echo 这个是php自定义的输出语句变量的定义方式$ 这个是定义变量的目前没有看到类型这个概念不像java的八种基本类型 以及自定义的引用类型数组的定义方式$ aks= array("","","","");目前只了解到一种定义PHP数组的方式, array关键字 不清楚PHP是否有PHP的概念。输出一个数组 sks[0]echo 也可以直接输出语句;java中字符串的形式 直接输出。&lt

2021-12-14 20:01:54 111

原创 sql连接

外连接特点:查询的结果=主表的所有行,如果从表和他匹配将显示匹配行,如果从表没有匹配则显示nullleft左联,左边是主表 right右连 右边是主表full全连接 两边全是主表havIng 是先分组,在查询where是先查询,在分组一般用于查询除了交集部分交叉连接select * from 表名1 a cross join 表名 2 b特点:类似与笛卡尔乘积子查询在其他语句内部的语句 称为子查询外部的语句可以是 insert update delete select 一

2021-11-22 00:02:49 625

原创 java_Web学习01

负载均衡的服务器 跳包java webJava基础学了 html等等基本概念web: 网页的意思,表示互联网的资源 www.baidu.com打开这个网站,就拿到了资源;分静态和动态。 html就是静态资源;提供给所有人看,且不发生变化。静态webhtml css 提供给所有人看的数据,且不会发生变化 比如自己的博客 这个所有的内容不会根据观看这的喜好所改变。动态web几乎所有的网站都是动态的;只要每个人是有账号登录的,都是动态网站。技术栈:servlet/jsp ASP(微软

2021-11-15 00:30:30 855

原创 Servlet

运行在服务器上的java小程序,有server +applet处理请求和完成响应的工具;是使用HTTP完成的,并且采用B/S结构生命周期1.init(ServletConfig config);初始化2.service(HttpServiceRequest request,HttpServiceResponse response)3. destroy();销毁tomcat启动的时候,并没有初始化。有请求的时候才会初始化。init只执行一次service方法,有几次请求就执行几次...

2021-07-03 17:40:25 55

原创 redis事务

数据库事务隔离级别: 读未提交数据 读已提交数据 不可重复读 串行隔离问题:更新丢失 脏读 不可重复读 幻读redis事务特性一次性 顺序性multiexec 这是一次事务在想 还得在开启事务 multi exec顺序性:事务一旦开启 必须按顺序执行 事务开启后 类似将所有的命令放在队列中去执行 按顺序multi… 将命令放入队列exec取消事务设置一半 临时取消multidiscard错误运行错误出现error的命令 不会执行 其他命令会正常执行编

2021-05-18 16:58:53 89 1

原创 redis基本命令

redis常用命令select切换数据库flushdb 删除当前的数据 和sync连着写sync 强行将内存中的数据写出去dbsize查看数据库大小del keyexpire 设置过期时间rename key newKey 修改当前键的名字random keyconfig get dir 获取配置文件的位置。两种持久化方式默认rdb一定时间后自动保存aof 优先级高aof append on file 追加到物理文件stringset key valuege

2021-05-18 15:19:13 47

原创 2021-05-12

RPM介绍全称:RedHat package Manager类似于手机里的安装包和电脑里的安装程序查询指令rpm -qa|grep 软件名称 查询是否安装了这个软件rpm -qa :查询所有的安装过的rom软件包rpm -q 软件包RPM卸载RPM -e RPM软件包名称注意:如果我们要删除的软件包被其他软件所依赖,那么就会出现错误安装RPMrpm -ivh rpm包的全路径名称i:install安装v:verbose提示h:hash进度条YUM仓库y

2021-05-12 10:06:10 56

原创 ORM思想

框架划分持久层框架:对数据库的基本操作mybatisspringJPAjdbcTemplatehibernate视图层框架springmvcspringboot整合框架springORM都是ORM映射思想;ObejctRelationShipMapping映射关系数据库表和 Java实体映射数据库表的record和Java中的new Person()数据库表的column和实体中的属性因为Java是面向对象的设计思想;数据库是关系型数据库。这俩都没啥关系;需要什

2021-04-17 18:43:58 120 1

原创 limit

第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)

2021-03-22 16:27:46 63

原创 web页面布局

div容器1.很方便的一个个矩形,设置宽高和位置排列方式。灵活布局。2.内部设置HTML标签。3.门户网站都不是板板正正的,都是很灵活的布局;及大框架是由div来布局的。CSS层叠式样式表选择器全局选择器* { 属性名:属性值;属性名1:属性值; }ID选择器所有的标签抖音通用的 ID name class style通用的三个属性语法:# 标签的ID属性值{ 属性名:属性值; } 缺点:是只能设置一个类选择器 可以选择某一类

2021-03-09 15:47:24 786

原创 级联查询

一对一步骤: 导mysql 的 jar包,及工具类自己创建连接数据库的工具类 DBTools通过面向接口设计程序的方式来编程SQL创建表创建学生表create table student(sid int primary key auto_increment,stuName varchar(22),address varchar(22));创建信息表create table info(id int primary key auto_increment,code varcahr(22

2021-01-24 11:25:42 672

原创 多表查询

INNER JOINselect LOC,// 直接查询的就是从表 dept 可以直接访问字段值 emp.ENAME,// 代表主表的内容 emp.JOB, emp.DEPTNO from dept INNER JOIN emp on dept.LOC='CHICAGO';// 条件筛选INNER JOIN 加的是主表; select * from + 从表*代表全部,可以是从表的内容 也可以是主表 但是主表要通过 表名.字段值才能获取。LEFT JOINRIGHT JO

2021-01-13 22:48:50 61

原创 数据库查询

排序order by 表示按照什么排序asc默认升序 可以不写 desc降序 必须写才能降序按名字从小到大排序 关键字 order by +关键词 + 方式;select * from emp order by ename asc;按照ename 降序排select * from emp order by ename desc;按照多个字段查询select * from emporder by sal,ename;分页: limit1. 一般于排序连用,

2021-01-13 01:28:54 162

原创 外键

一对一外键写在那个表都可以;逻辑上是写在辅表SQL语句:people表create table person(pid int primary key auto_increment,pname VARCHAR(22),password VARCHAR(22),address VARCHAR(22));IdCardcreate table IdCard(cid int primary key auto_increment,number varchar(18) not null UNIQ

2021-01-12 22:57:30 166

原创 ReentrantReadWriteLock

在读写/写写的情况下需要用读写锁来保证线程安全ReentrantReadWriteLockLock接口的实现类之一普通锁:需要实现类ReentrantLock;Lock lock=new ReentrantLock();读写锁: 需要实现类ReentrantReadWriteLockReentrantReadWriteLock lock=new ReentrantReadWriteLock();锁的是访问器的设置值于得到值;相当于读和写package ReentrantReadWrite

2021-01-11 01:40:09 74

原创 并发包下的通讯机制

通讯机制加锁的原理 加这个锁一定是同步锁;一再使两个线程同时去运行,但是只能运行线程的一个。 锁就是同步锁;使这两个线程必须同时先后完成 谁抢到锁就完成 不好概况;大概意思就是 锁是一把锁,在同步锁下的线程是同时唤醒的,但是通讯机制里有休眠和唤醒另一个线程的能力是因为 Object类下的 wait() notify() notifyAll() 不能和luck锁连用;要解决异常 必须改为 并发包下的 通讯机制并发包下使用Luck下的condition接口下的 await() signal(

2021-01-11 01:31:41 158

原创 多线程的四种情况

多个线程抢占一个资源1.俩人抢5个苹果只能用实现 Runnable接口的方式去实现多线程;用Thread类继承不管用;避免将循环写道同步锁内;否则会造成死锁的情况苹果类实现多线程实现Runnable()类;同步锁锁的是资源或者控制资源的方法--------伪代码public class Apple implements Runnable{ int count 5; @override public void run(){ while(count>0){ if(coun

2021-01-11 01:30:47 135

原创 高并发下线程安全集合选择

线程不安全会出现丢值或者重复的情况Collection集合下的线程安全重要:支持复合操作的线程安全的1.CopyOnWriteArrayList();2.CopyOnWriteHashMap别的线程安全的,都是不支持复合操作的StringBuffer1.List集合CopyOnWriteArrayList();线程安全;支持复合操作及在迭代器中一遍编列 一边添加元素原理:写入并复制,每次要创造新的并添加进去刚加的;内部lock锁加持使线程安全;自己复制自己的;添加自己的;

2021-01-11 01:30:10 389 2

原创 字符输出流

Writerjava.io.Wirterjava.io.OutputStreamWriterjava.io.BufferdWriterjava.io.PrintWriterOutputStreamWriterpackage 字符流输出流;import java.io.BufferedWriter;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStream;//import ja

2021-01-11 00:30:56 112

原创 字符输入流

输入流 java.io.ReaderBufferReader 主要是使用readLine()方法;用BuferReader来包装输出;增加读取或写入的速度;这里是增加写入的速度 贯穿了File InputStream InputStreamReader三个类的使用功能: 字符输入中缓存文本步骤:1. File file=new File(“要读取的文本.txt”);//字符流一般读取文档2. InputStream ips=new InputStream(file);//从文件中读取字节流

2021-01-11 00:17:23 131

原创 字节流

从文件中读取并输出到显示台用一个byte数组承载用

2021-01-09 18:51:27 102

原创 File类

java.io.File包下的学习IO流必备的一个;必须学会操纵底层文件的创建 删除 改名 复制等 是普通类构造方法File(File parent,String child);传递父类的文件夹;及创建文件的存储位置传递要创造文件的名字File(String str);传递的是路径名字File(String parent,String child)传递要创建文件的位置 String parent就是路径 但是是String类型的要创建文件的名字File(URT urI) 不

2021-01-08 22:53:24 76

原创 线程池

方便线程的创建;好的话使线程充分被利用 节省空间使用线程时,需要频繁的创建和销毁线程。new Thread(Runnable a,String str); 是自己创建的线程 或者在线程类中直接继承线程类Thread;线程池是创造好的几个线程在队列中排列; 用完还要放到队列的底部去重复利用Executor接口java.util.concurrent并发包下的一个接口public interface ExecutorExecutors类并发包下的一个类 public class Execut

2021-01-07 20:13:52 58

原创 线程八锁

package 线程八锁;/* * 线程八锁 * bazhong情况 还时一个类 * 1. 两个线程调用同步普通方法 是一个锁 * 2.两个线程调用同步的方法,one休眠3秒 等待3秒后,OneTwo一起发出 是同一把锁 * 3. 三个方法 两个同步方法是同一把锁 一个普通方法没有锁 One Two是同一把锁 Three是不加锁 同时运行 Three One Two 是顺序 三个方法 有两个同步方法 两个同步方法是一把锁 另一个没有锁 * 4. 创建两个普通的方法

2021-01-07 19:56:55 63

原创 闭锁

CountDownLatch是并发包下的一个普通类 public class CountDownLatch extends Object构造方法:CountDownLatch( int count); //构造一个给定计数器 count必须和线程的个数一样;用于倒计时 当所有的子线程结束时,便启动主线程的运行方法await();// 阻塞主线程 当子线程全部完成后自动解开阻塞 除非interruptedcountDown();//减少封锁器的个数 每次减一getCount();// 返

2021-01-07 19:48:46 94

原创 并发包下的Callable接口

有返回值类型的线程需要借助FutureTask类,这也是并发包 java.lang.Object下的一个普通类;这是Callable的一个辅助类 用于连接实现Callable线程和Thread线程类的工具返回值类型也是借助FutureTask的get方法来得到返回值类型的;必须抛出异常且用一个变量来接它才能用System.out.println()的方式输出注意::: 必须在所有线程启动后才能获取返回值;这个返回值是这个线程执行的次数或者这个线程需要返回的类型注意Callable

2021-01-07 19:32:42 111

原创 高并发

synchronized 同步锁描述:又称线程同步;及多个线程共享一个 资源。出现资源竞争的问题。如我们生活中的火车抢票 秒杀商品等同步方法封装一个普通方法在run()外,并带入到run()中。语法: public synchronized void 方法名(){System.out.println(Thread.currentThread().getName()+"");}1.抢火车票 多个站台同时发售火车票,怎么能不卖重package 线程同步;public class MaiP

2021-01-04 19:12:38 119 1

原创 多线程基本概念

进程正在运行的程序叫进程线程1.运行在进程中 是正在运行的正在进程中的子程序流2. 每一个线程都栈用进程的内存;若进程终止;线程就不存在了3. 每个线程都是独立的,互不干扰 每一个方法就是一个线程;java执行程序就是调用线程的过程 main函数是主线程 我们一致在调用主线程4 . 线程于线程之间互不干扰 他们共用一个进程的内存多线程概念:多个线程并发执行, 高并发(多个用户同时访问) 多个正在执行的子程序流多个线程共用同一个资源, 火车票抢票 涉及高并发多个线程有

2021-01-04 18:53:32 160

原创 两种实现多线程的方式 迅雷案列

Thread多线程类继承Thread类使子类有多线程的能力1.子类需要重写run()方法重要,run()里面是子线程的重要实现过程东西的案列package 第一种;public class Thunder extends Thread{ @Override public void run() {//继承Thread需要重写run()方法 // TODO Auto-generated method stub for(int i=1;i<101;i++) { Sy

2021-01-04 18:43:07 320 4

原创 应用场景

Collection下的有List接口和Queue接口、Set接口ListArrayList查询速度快,但删改增慢LinkedList增删改快,查询慢Queue有多个实现类;只需记住ArrayList当作实现类用于单向队列这是一个接口;需要借助LinkedList当做实现类来操作Queue queue=new LinkedList();方法:add(); 实现与Collection接口offer:添加元素到集合;返回值类型是Booleanpeek:检索第一个元素不删除;为null返

2020-12-26 08:54:33 175

原创 泛型

数据类型参数化将数据类型自动参数化;一旦像改集合内添加的元素不是改类型的就会报错List list =new ArrayList<>();list.add(“abdad”);list.add(“唐曾”);list.add(4);//直接保存 只能存储类型的,否则报错List list =new LinkedList<>();//只能存储Integer类型用于存储自定义类型的集合,直接在<自定义类>...

2020-12-25 21:36:29 78

原创 Set接口

HashSet原理:底层就是HashMap写的;而HashMap是数组加链表实现的。JDK1.7叫做 Entry JDK1.8叫做 Node;JDk1.8除了数组+链表‘还加入了红黑树。我们这里统称Entry1.向HashMap存储元素时,最多要进行两次比较;第一次比较是根据存储的内容计算哈希值判断存储位置;则必须重写HashCode这个方法;若该位置为null则直接存储;否则要进行第二次判断2.第二次判断是判断内容;要重写equals(); 判断内容是否相等;相等则删掉;不相等则在改元素位置的下面

2020-12-25 21:28:50 88

原创 字符串的缓冲区

StringBuffer构造器:1.StringBuffer(); 默认大小为162.StringBuffer(int number);更改缓冲区的默认值3.StringBuffer(String str);创建这个字符串大小的缓冲区方法1.append();拼接长度,String里的concat();每次都需要创建新的;影响性能,尤其在高并发的时候2.toString(); 将StringBuffer改为字符串3.capacity(); 获取当前StringBuffer的默认容量大小4

2020-12-25 20:42:35 290

原创 集合难题

封装动态数组解题思路;和数组一样;难点是插入删除的前后整体移动设计一个Student类,该类中包括学生的姓名和成绩。创建Student类的5个对象,如下所示:第三题我用迭代器做出来了执行测试类package 编程题1;import java.util.ArrayList;import java.util.Iterator;public class ArrayListUse { public static void main(String[] args) { ArrayLi

2020-12-24 01:46:29 840

原创 迭代器

最古老的一种遍历不能复合调用方法,否则报错只能调用依一次;相当于抛出去直接扔掉回收调用迭代器之前;不能对其进行remove删除;否则报线程异常最好不要多个 next()一起用;会报错适用场景适合遍历没有下标的集合 比如Map集合迭代器局限性挺大的;只能迭代一次遍历import java.util.ArrayList;import java.util.Iterator;ArrayList list =new ArrayList();list.add();list.add();.

2020-12-24 01:36:27 90

原创 ArrayList动态数组

自定义动态数组模拟ArrayList自定义接口抽象出这个类所有的功能 package ArrayListTest;//封装数组的集合接口,zhi存储字符串public interface MyList { void add(String str);//向集合末尾添加字符串 void add(int index,String str);//zai指定位置添加字符串 String remove(int index);//删除指定位置的字符串 void remove(String str

2020-12-22 18:59:41 234

原创 List集合

概念:是封装的链表;删除元素不需要移动元素;因为在链表中没有下标可循 链表中根本没有下标;特点:可以添加重复的元素;与数组相比;增删快list的增删查改package List包;import java.util.ArrayList;import java.util.List;public class ListTest { public static void main(String[] args) { // TODO Auto-generated method stub Li

2020-12-22 18:58:56 107

原创 集合

概念:由若干个确定的元素所构成的整体;一个Java对象(一个类)可以在内部持有若干个其他Java对象,并对外提供访问接口;我们把这种Java对象称为集合 Java数组就是一种集合 有限的集合和无限集合(有理数)集合的特点:1.实现了接口和实现类的分离 有序表的接口:list 具体的实现类有:ArrayListLinkedList2.支持泛型 可以在一个集合放入同一种数据类型的元素list集合1.导入的包import java.util.Arr

2020-12-22 18:54:06 64

原创 集合框架

集合前身1.由数组 链表 树 栈 队列等结构封装而来概念:一些存储数据的类和接口组成的,这些类封装了一种或几种数据结构封装数组:ArrayList集合封装链表:LinkedList………基本的数据结构1.数组结构 线性 在遍历时效率高 通过索引来找 插入或删除效率低2.链表结构:单链表和双链表 链表是由节点组成的单链表:每个节点是数据和后节点组成的 一个是数据 一个是地址 只能从前往后找双链表: 一个节点存俩地址 ,分别存前地址和后地址 但是可以从后往前查找 占内存

2020-12-22 18:35:32 77

Servlet原理大大大大大大大大大大大大大大大大大大大

原理实现

2022-12-05

SSM整合-用springaop-demo01实现了注解AOP,SSM-MybatisOneForOne-demo01实现了

SSM整合-用springaop-demo01实现了注解AOP,SSM-MybatisOneForOne-demo01实现了

2022-11-14

草稿:SSM整合-用springaop-demo01实现了注解AOP,SSM-MybatisOneForOne-demo01实现

草稿:SSM整合-用springaop-demo01实现了注解AOP,SSM-MybatisOneForOne-demo01实现

2022-11-14

Mybatics增删改查以及map传值Object传值的实现

Mybatics增删改查以及map传值Object传值的实现

2022-10-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除