- 博客(63)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 java死锁
public class Test { public static void main(String[] args) { Makeup g1=new Makeup(0,"灰姑凉"); Makeup g2=new Makeup(1,"白雪公主"); g1.start(); g2.start(); }}//口红class Lipstick{}//镜子class Mirror{}class Mak...
2021-06-14 18:52:00
1159
1
原创 解决线程之间的通信问题(java)
解决线程之间的通信问题:解决方式一:测试生产者消费者代码模型–>利用缓冲区解决 ( 管程法 ) ://测试:生产者消费者模型-->利用缓冲区解决:管程法//生产者,消费者,产品,,缓冲区public class text{ public static void main(String[] args) { SynContainer container=new SynContainer(); new Product(contain...
2022-05-09 20:33:06
131
原创 集合(java)
集合1.集合概念:对象的容器,实现了对对象常用的操作和数组的区别:数组长度固定,集合不固定数组可以存储基本类型和引用类型,集合只能存储引用类型Collection体系:2.List子接口:特点:特序,有下标,元素可以重复.常用(ArrayList,LinkedList),(Vector).ArrayList (重点) :数组结构实现,必须要连续空间,查询快,增删慢.JDK1.2版本,运行效率快,线程不安全.源码分析:默认容量: privat
2022-05-02 10:51:35
176
原创 P1803 凌乱的yyy / 线段覆盖(java)
import java.util.*;public class Main { class Student implements Comparable<Student>{ private int a,b; public Student(int a, int b) { super(); this.a = a; this.b = b; } @Override public int compareTo(Student o) { return Integ.
2022-03-16 14:34:04
192
原创 全排列(java)
洛谷题目:P1088 [NOIP2004 普及组] 火星人题目描述:人类终于登上了火星的土地并且见到了神秘的火星人。人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法。这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学家,科学家破解这个数字的含义后,再把一个很小的数字加到这个大数上面,把结果告诉火星人,作为人类的回答。火星人用一种非常简单的方式来表示数字――掰手指。火星人只有一只手,但这只手上有成千上万的手指,这些手指排成一列,分别编号为 1,2,3,\cdo
2022-03-12 14:12:09
841
原创 安装配置Apache服务器
1、下载Apache(下载地址:添加链接描述)2、安装Apache解压后打开conf文件夹下httpd.conf文件①修改成自己的Apache目录地址在conf/extra文件里面找到这个两个文件夹打开修改端口号(“443"全部修改成"444"或者"442”)以管理员身份运行cmd,找到Apache下的bin文件夹下,执行命令若出现这个报错修改端口号修改没成功:(重新安装)步骤在最下面启动Apache找到这个文件打开点击start启动启动成功访问 http://loc
2022-03-01 19:00:00
244
原创 最大区间和(DP)
试题 算法提高 最大区间和提交此题 评测记录资源限制时间限制:1.0s 内存限制:256.0MB问题描述给定n个数A1,A2,A3……An,求两个数l,r满足l<=r并最大化Al+A(l+1)+……Ar,输出这个最大值输入格式第一行一个数n,接下来一行有n个用空格隔开的数,第i个数表示Ai输出格式输出仅一行,即最大区间和样例输入4-1 -2 -3 4样例输出4数据规模和约定每个数绝对值不超过2^30; n<=1000000public class Mai
2022-02-27 14:42:25
296
原创 最长公共子序列(DP)
解题思路: ****以二维数组的方式遍历两个字符串,行和列要加一,方便计算, 当遍历的两个字符相同时,就代表他两个字符串中都有这个字符, 就让这个位置等于左上角的数字加一,dp[i][j] = dp[i-1][j-1] + 1;**** **当两个字符不相等时,让他等于之前记录的公共串,此位置等于, 上面和左边两个数中大的那
2022-02-27 13:02:55
290
原创 二维数组遍历
public static void main(String[] args) { int[][] arr=new int[5][5]; //初始化二维数组 for(int i=0;i<arr.length;i++) {//行 for(int j=0;j<arr[0].length;j++) {//列 arr[i][j]=i*j; } } System.out.println("第一中遍历"); //第一种遍历 for(int i=0;i<ar
2021-10-23 15:45:26
67
原创 二分查找(java)
package C2;public class array { public static void main(String[] args) { //二分查找 int[] arr= {1,2,3,4,5,6,7,8,9}; int target=5;//目标元素 int left=0;//记录开始位置 int end=arr.length-1;//记录结束位置 int mid=(left+end)/2;//记录中间的位置 int index=-1;//记录目标位置
2021-10-23 13:27:14
87
原创 java位运算
package C1;public class Test { public static void main(String[] args) { int num=86; //位运算判断奇偶数 System.out.println(num+"num是:"+(((num&1)==0)?"偶数":"奇数")); //获取二进制位是0或1(两种解决方法) System.out.println("=====获取二进制位是0或1======"); System.out.println
2021-10-15 22:35:15
60
原创 创建赫夫曼树
Node:package demo8;public class Node implements Comparable<Node>{ int value; Node left; Node right; public Node(int value) { this.value=value; } @Override public int compareTo(Node o) { return this.value-o.value; } @Override publ
2021-10-10 20:45:58
56
原创 堆排序 (HeapSort)
堆排序动态图:测试代码:package demo3;import java.util.Arrays;public class HeapSort { public static void main(String[] args) { int[] arr=new int[] {9,6,8,7,0,1,10,4,2}; heapSort(arr); System.out.println(Arrays.toString(arr)); } public static void hea
2021-10-07 11:29:26
86
原创 基数排序 (RadixSort)
基数排序动态图:测试代码:package demo3;import java.util.Arrays;public class RadixSort { public static void main(String[] args) { int[] arr=new int[] {5,89,13,468,235,352,544,150,447,66,81}; radixSort(arr); System.out.println(Arrays.toString(arr)); } //
2021-10-04 21:23:07
102
原创 归并排序 (MergeSort)
归并排序动态图:测试代码:package demo3;import java.util.Arrays;public class MergeSort { public static void main(String[] args) { int[] arr=new int[]{1,3,5,2,4,6,8,9}; System.out.println(Arrays.toString(arr)); mergeSort(arr,0,arr.length-1); System.out.p
2021-10-03 14:52:09
91
原创 希尔排序(Shell Sort)
希尔排序动态图:测试代码:package demo3;import java.util.Arrays;public class ShellSort { public static void main(String[] args) { int[] arr=new int[] {1,8,6,0,4,2,3,8,7}; shellSort(arr); System.out.println(Arrays.toString(arr)); } //希尔排序 public static
2021-10-02 22:14:47
66
原创 快速排序(Quick Sort)
快速排序动态图:测试代码:package demo3;import java.util.Arrays;public class QuickSort { public static void main(String[] args) { int[] arr=new int[] {3,9,5,8,3,4,5,1,2}; quickSort(arr,0,arr.length-1); System.out.println(Arrays.toString(arr)); } //快速排序
2021-10-02 22:13:07
77
原创 插入排序(Insertion Sort)
插入排序动态图:测试代码:package demo3;import java.util.Arrays;public class InsertSort { public static void main(String[] args) { int[] arr=new int[] {5,9,4,6,8,2,1,0,5}; insertSort(arr); System.out.println(Arrays.toString(arr)); } //插入排序 public sta
2021-10-02 22:11:55
62
原创 选择排序(Selection Sort)
选择排序动态图:测试代码:package demo3;import java.util.Arrays;public class SelectSort { public static void main(String[] args) { int[] arr=new int[] {5,4,2,8,9,3,0,1}; selectSort(arr); System.out.println(Arrays.toString(arr)); } //选择排序 public stati
2021-10-02 22:10:11
58
原创 冒泡排序(Bubble Sort)
package demo3;import java.util.Arrays;public class BubbleSort {public static void main(String[] args) {int[] arr= {7,5,3,4,6,9,8,2};System.out.println(Arrays.toString(arr));bubbleSort(arr);System.out.println(Arrays.toString(arr));}//冒泡排序public s.
2021-10-02 22:00:15
96
原创 汉诺塔问题
测试游戏网址:https://zhangxiaoleiwk.gitee.io/h.html测试代码:package demo2;public class TestHanoi { public static void main(String[] args) { hanoi(3,'A','B','C'); } /** * @param n 共有N个盘子 * @param from 开始的柱子 * @param in 中间的柱子 * @param to 目标的
2021-09-22 16:27:10
497
原创 AOP实现方式
配置总applicationContext.xml:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
2021-09-15 12:57:54
44
原创 静态代理模式
角色分析:1.抽象角色:一般会使用接口或抽象类来解决2.真实角色:被代理的角色3.代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作4.客户:访问代理对象的人!代码步骤:1.接口//租房public interface Rent { public void rent();}2.真实角色:public class Host implements Rent{ @Override public void rent() { Syst
2021-09-12 21:00:06
40
原创 分页(Limit+RowBounds)
使用Limit分页分页减少数据的处理量使用Mybatis实现 核心SQL1.接口 //分页 List<User> getUserByLimit(Map<String,Integer> map);2.Mapper.xml<!-- 分页--> <select id="getUserByLimit" resultMap="UserMap" parameterType="map" resultType="user">
2021-09-04 14:08:28
107
原创 log4j日志
什么是Log4j?1·Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件GUl组件2·我们也可以控制每一条日志的输出格式;3·通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。4·通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。一.先导入log4j包<dependencies> <dependency> <groupId>log4j<
2021-09-03 22:34:30
60
原创 CRUD(实现)
一.select选择查询语句;1.id:就是对应的namespace中的方法名2.resultType:sql语句执行的返回值!3.parameterType:参数类型!1.编写接口 //根据ID查询用户 User getUserById(int id);2.编写对应的mapper中的sql语句 <select id="getUserById" parameterType="int" resultType="com.Rain.Pojo.User"> s
2021-09-02 20:45:35
141
原创 Mybatis配置
maven导入jar包<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache
2021-09-02 19:30:43
50
原创 二分查找法
package demo1;import java.util.Arrays;public class he { public static void main(String[] args) { //目标数组 int[] arr=new int[] {1,2,3,4,5,6,7,8,9}; //目标元素 int target=9; //记录开始位置 int begin=0; //记录结束位置 int end=arr.length-1; //记录中间的位置
2021-08-29 21:43:24
109
原创 验证码实现(Response)
public class ImageServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //如何让浏览器3秒刷新一次; resp.setHeader("refresh","3"); //在内存中创建一
2021-08-19 23:58:29
71
原创 JSON的使用
1.1、什么是 JSONJSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于 JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999 的一个子集。 JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯(包括 C, C++, C#, Java,JavaScript, Perl, Pyt
2021-08-17 22:07:55
2268
原创 ThreadLocal的使用
ThreadLocal 的作用,它可以解决多线程的数据安全问题。ThreadLocal它可以给当前线程关联一个数据(可以是普通变量,可以是对象,也可以是数组,集合)ThreadLocal 的特点:1、ThreadLocal可以为当前线程关联一个数据。(它可以像Map一样存取数据,key为当前线程)2、每一个 ThreadLocal对象,只能为当前线程关联一个数据,如果要为当前线程关联多个数据,就需要使用多个ThreadLocal对象实例。3、每个ThreadLocal对象实例定义的时候,一般都是s
2021-08-16 23:13:58
2163
原创 Filter过滤器
1.什么是Filter过滤器1.Filter过滤器它是javaweb的三大组件之一,三大组件分别是:servlet程序,listener监听器,Filter过滤器2.Filter过滤器它是javaEE的规范.也就是接口3.Filter过滤器它的作用是: 拦截请求,过滤响应.拦截请求常见的应用场景有: 权限检查 , 日记操作 , 事务管理 …等等2.Filter过滤器使用1.编写一个类去实现Filter接口2.实现过滤方法doFilter()3.到web.xml中配置Filter()的拦截路径
2021-08-16 18:00:50
63
原创 文件下载的实现
1.准备一张图片2.编写Download类public class Download extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.获取要下载的文件名 String downloadFileName="1.jpg"
2021-08-07 15:42:23
209
原创 JSTL标签库遍历
遍历1<%--1.遍历1到10,输出begin属性设置开始的索引end属性设置结束的索引var属性表示循环的变量for(int i=1;i<10;i++)--%><table border="1"> <c:forEach begin="1" end="10" var="i"> <tr> <td>第${i}行</td> </tr> &
2021-08-05 23:17:52
385
原创 mysql连接druid
配置文件druid-1.1.9.jarmysql-connector-java-8.0.25.jarurl=jdbc:mysql://localhost/book?serverTimezone=UTCdriverClassName=com.mysql.cj.jdbc.Driverusername=rootpassword=123456initialSize=10maxActive=30public class JdbcUtils { private static DataS
2021-08-01 15:20:34
170
原创 mysql连接jdbc
Druid纯代码方式连接//先添加jar包druid-1.1.9.jarmysql-connector-java-8.0.25.jar public static void main(String[] args) throws Exception { //数据源配置 DruidDataSource dataSource = new DruidDataSource(); dataSource.setUrl("jdbc:mysql://localhos
2021-08-01 09:27:25
100
原创 servlet请求重定向
请求重定向的第一种方案:准备两个servlet程序Response1public class Response1 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("Hello Response1")
2021-07-31 12:15:46
249
原创 servlet请求分发处理
public class HelloServlet implements Servlet { private String message; //servlet生命周期 //第一,二是在第一次访问,的时候创建servlet程序 public HelloServlet() { System.out.println("1--构造器方法"); } //初始化 @Override public void init(Servl
2021-07-29 10:40:47
164
原创 2021-07-16
操作DOM对象核心浏览器网页就是一个DOM数形的结构!1.更新: 更新DOm节点2.遍历Dom节点: 得到Dom节点3.删除: 删除一个Dom节点4.添加:添加一个新的节点要操作一个Dom节点, 就必须要先获得这个节点Dom节点<div id="father"> <h1>标题一</h1> <p id="p1">p1</p> <p class="p2">p2</p>&l
2021-07-16 22:48:57
95
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人