![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
这到底咋写
NULL
展开
-
简单的BeanFactory
实例化对象不需要用new,使用反射技术可以完成对象的实例化。在xml文件中配置要实例化对象的全限定类名name以及唯一标识符name。实例化完成之后需要需要维护对象之间的依赖关系,可以检查bean中是否有property对象。如果有就需要进行传值,可以使用set方法进行传值<?xml version="1.0" encoding="UTF-8" ?><!--跟标签beans,里面配置一个又一个的bean子标签,每一个bean子标签都代表一个类的配置--><beans&原创 2021-08-17 18:33:34 · 140 阅读 · 0 评论 -
JWT学习
public void create(){ Calendar instance = Calendar.getInstance(); instance.add(Calendar.SECOND, 100); String token = JWT.create() .withClaim("username","xiaohu")//payload .withExpiresAt(instance.g...原创 2021-08-10 22:08:31 · 66 阅读 · 0 评论 -
SpringBoot整合redis
配置文件#Redis服务器地址spring.redis.host=121.4.189.51#Redis服务器连接端口spring.redis.port=6379#Redis数据库索引(默认为0)spring.redis.database= 0#连接超时时间(毫秒)spring.redis.timeout=1800000#连接池最大连接数(使用负值表示没有限制)spring.redis.lettuce.pool.max-active=20#最大阻塞等待时间(负数表示没限制)spring原创 2021-07-21 11:26:34 · 55 阅读 · 0 评论 -
ForkJoinPool实现数字之和
public class ForkJoin2 { public static void main(String[] args) { ForkJoinPool forkJoinPool = new ForkJoinPool(); Scanner scan = new Scanner(System.in); int n = scan.nextInt(); Integer invoke = forkJoinPool.invoke(new My原创 2021-05-07 16:48:21 · 99 阅读 · 0 评论 -
请求重定向和请求转发
请求重定向一.特点地址栏发生变化发生两次请求不共享Request域中的数据不能访问WEB-INF下的资源可以访问工程外的资源二.代码方法一 //1.设置响应状态码 resp.setStatus(302); //2.设置响应头,说明新的地址 resp.setHeader("Location","http://localhost:8080/HYK/respon2");方法二 resp.sendRedirect原创 2021-01-23 13:03:54 · 78 阅读 · 0 评论 -
实现增删改查的封装
获取数据连接不使用Druid封装package Utils;import java.io.FileInputStream;import java.io.IOException;import java.sql.*;import java.util.Properties;/** * 封装JDBC工具类 * 功能: * 1.获取连接 * 2.释放资源 */public class JDBCUtils { static String url; static String原创 2021-01-22 16:19:59 · 250 阅读 · 0 评论 -
请求的HTTP协议格式
Get请求一 .请求行请求的方式请求的资源路径请求的版本协议号二.请求头(需要记住的)Accept:客户端可以接受的数据类型Accept-Language:客户端可以接受的语言类型User-Agent:浏览器的信息Accpect-Encoding:客户端可以接受的编码格式Host:表示请求的ip和端口号Connection:告诉服务器请求连接如何处理 Keep-Alive:通知服务器回传数据不要马上关闭,保持一小段的连接 Closed:马上关闭Pos原创 2021-01-19 11:22:25 · 139 阅读 · 0 评论 -
线程池的各个参数含义
public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> wo...原创 2021-01-17 16:06:01 · 196 阅读 · 0 评论 -
HttpServlet常用方法
获取请求的资源路径 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("URI :" + req.getRequestURI());//获取请求的资源路径 }获取请求统一资源的定位符 @Override protected voi原创 2021-01-02 16:02:10 · 412 阅读 · 0 评论 -
Servlet初步认识
Servelet介绍:1、Servlet 是 JavaEE 规范之一。规范就是接口2、Servlet 就 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。3、Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。实现Servlet1、编写一个类去实现 Servlet 接口2、实现 service 方法,处理请求,并响应数据3、到 web.xml 中去配置 servlet原创 2020-12-28 14:52:56 · 1437 阅读 · 0 评论 -
解决线程安全问题
1. 同步代码块 synchronized(锁对向){ 可能出现线程安全问题的代码块 } 注意: 1. 通过代码块中的锁对象,可以使用任意的对象 2. 必须保证多个线程使用的锁对象是同一个 3. 锁对象的作用:把同代码块锁住,只让一个线程在同步代码块中执行 private int n = 100; Object obj = new Object(); @Override public void run() {原创 2020-12-26 13:43:31 · 72 阅读 · 0 评论 -
Thread常用方法
获取当前线程名字getName @Override public void run() { //获取线程名字 方法1 String name1 = getName(); System.out.println(name1); //方法2 Thread thread = Thread.currentThread();//静态方法,直接使用类名调用 String name2 = thread.getName(原创 2020-12-25 19:15:56 · 117 阅读 · 1 评论 -
多线程内存图理解
public class myThread extends Thread{ @Override public void run() { for (int i = 0; i < 20; i++) { System.out.println("run" + i); } }}public class DemoThread { public static void main(String[] args) {原创 2020-12-25 12:14:22 · 60 阅读 · 0 评论 -
向上转型和向下转型
向上转型对象的向上转型就是多态写法格式:父类名称 对象名 = new 子类名称();含义:右侧创建一个子类的对象,把他当做父类来看待使用注意:向上转型一定是安全的。从小范围到大范围。对象一旦向上转型成父类,那么就无法调用原本子类特有的方法。向下转型对象的向下转型是一个还原的过程格式:子类名称 对象名 = (子类名称)父类对象;含义:将父类对象还原成本来的子类对象...原创 2020-12-11 16:38:15 · 155 阅读 · 0 评论 -
内部类
分类1.成员内部类定义在一个类的内部2.局部内部类定义在一个方法的内部成员内部类定义格式成员内部类:class 修饰符 外部类名称{class 修饰符 内部类名称{}}注意:内用外:随意访问外用内:需要内部类对象生成的class文件:外部类名称$内部类名称使用方法1.间接方式:在外部类的方法中使用内部类2.直接方式:外部类名称.内部类名称 对象 = new 外部类名().内部类名称();当变量出现重名时:class Out{ int num = 10;//外部原创 2020-12-11 16:23:20 · 54 阅读 · 0 评论 -
匿名对象
正常创建对象:类名 对象名 = new 类名();匿名创建对象:new 类名();匿名对象只能使用唯一的一次。原创 2020-12-11 15:25:25 · 56 阅读 · 0 评论 -
选择排序(JAVA)
一 思路假设给定数组arr如下,以从小到大排序为例第一轮排序1.寻找数组中最小的最小值,记录最小值得下标为index,最小值为min2.将arr[ 0 ]与最小值进行交换结果:index为8,min为1 int minIndex = 0; int min = array[0]; //寻找数组中的最小值,并且将最小值赋值给min,最小值下标记录为index for (int i = 0; i <= array.length - 1; i++原创 2020-11-23 22:05:38 · 109 阅读 · 0 评论 -
数据库基本语法一
一 对数据库的操作show databases;显示当前的数据库create database [ if not exists] 数据库名 ; 创建数据库use 数据库名; 使用数据库drop database [ if exists ]; 删除数据库二 对表的操作desc 表名; 查看表结构create table [ if not exists ]表名(名称 数据类型 [ comment ‘注释’ ],名称 数据类型 [ comment’注释’ ] ); 创建表drop table原创 2020-11-17 16:06:23 · 174 阅读 · 0 评论 -
类与接口的关系(java)
原创 2020-11-11 16:09:16 · 98 阅读 · 0 评论 -
稀疏数组
一、稀疏数组的产生当一个数组中大部分的值是0或者是一样的值的时候,就可以使用稀疏数组来保存该数组。二、稀疏数组的处理方法记录原数组有几行几列以及多少个值将不同值的行列以及值大小记录在一个小规模数组中例如:下图中的二维数组转换成稀疏数组假设原始数组为Array,该稀疏数组表示的含义是:Array共有10行10列,有两个非0值。且Array[ 1 ][ 1 ] == 1; Array[ 2 ][ 2 ] == 2;三、将二维数组转化为稀疏数组思路:1.遍历二维数组,得到有效数据su原创 2020-09-09 11:17:18 · 61 阅读 · 0 评论 -
初识异常
一、异常的背景所谓异常指的就是程序在 运行时 出现错误时通知调用者的一种机制。二、防御式编程错误在代码中是客观存在的. 因此我们要让程序出现问题的时候及时通知程序员. 我们有两种主要的方式:LBYL: Look Before You Leap. 在操作之前就做充分的检查。EAFP: It’s Easier to Ask Forgiveness than Permission. “事后获取原谅比事前获取许可更容易”. 也就是先操作, 遇到问题再处理。三、异常的基本用法try{ 有原创 2020-08-07 21:16:10 · 75 阅读 · 0 评论 -
关于String类型
一、String类介绍1.可以看出String是被final所修饰,继承Object(所有的类都默认继承Oject类)2.常见的定义方法 //第一种方法 String str1 = "abcd"; //第二种方法 String str2 = new String("abcd"); //第三种方法 char[] value = {'a','b','c','d'}; String str3 =原创 2020-08-07 18:59:00 · 190 阅读 · 0 评论 -
单链表常见问题
一、给定一个链表,返回链表开始入环的第一个结点,如果链表没有环返回null思路:定义两个节点fast和slow,fast每次走两步,slow走一步,如果fast和slow相遇,则说明链表有环。如果有环,则说明(X表示起点到环的起点的距离,L表示环的起点到相遇位置的距离,C表示一圈的长度)1.fast所走的路程是slow的二倍。2.slow所走的路程是X + L。3.fast所走的路程是X + L + C。可以推导出 2(X+L) = X + L +C,即X = C - L。当他们相遇时,将sl原创 2020-08-04 14:20:03 · 794 阅读 · 0 评论 -
数据类型转换
不同的基本数据类型转换在计算数据的时候,往往会有不同的数据类型进行转换,不同的数据类型计算的时候就会发生整型提升,即所占字节数小的会提成成所占字节数大的和精度小的会提升成精度大的。整形数据类型之间的转换 int a=10; long b=20; int c =a+b;由于java的安全性,在编译的时候会进行报错。是因为long占8个字节而int之占4个字节,所以a发生了整形提升,即a+b其实是两个long类型的数据相加放到int类型数据当中,所以会出错。正确的做法是将a+原创 2020-07-17 15:11:02 · 555 阅读 · 0 评论 -
有手就行:教你3秒内完成进制转换
1首先在键盘上点击win+r结果如下:2 输入calc打开计算机3 点击查看设置成为程序员4 接下来就可以计算:例如想求二进制1111 1111选中二进制然后输入1111 1111在选中十进制即可查看原创 2020-07-16 15:22:38 · 660 阅读 · 0 评论 -
找不同:Java与c语言的数据类型
java的基本数据类型一 整型数据类型1 int类型:与c语言大致一样,但是java中int所占字节是4,c语言中由于系统的不用,在32位系统中占占用2位,在64位系统中占4位。public static void main1(String[] args) { //输出int的最大值和最小值 System.out.println(Integer.MAX_VALUE); System.out.println(Integer.MIN_VALUE); }2 long类型:与原创 2020-07-16 14:21:59 · 756 阅读 · 0 评论 -
字符串常用函数2
字符串拷贝:char * strncpy ( char * destination, const char * source, size_t num );可以将任意长度进行拷贝 const char *str1 = "abcdefg"; char dst[32] ; strncpy(dst, str1, strlen(str1) + 1);//将'\0'拷贝进去 printf("%s\n", dst);原创 2020-06-17 18:04:41 · 103 阅读 · 0 评论 -
字符串常用函数介绍1
1.求字符串长度函数:size_t strlen ( const char * str ); const char *str = "abcdef"; int len = strlen(str); printf("%d\n", len);2.字符串拷贝函数:char * strcpy ( char * destination, const char * source ); const char *str1 = "abcdef"; char dst[32]; strcpy(dst, str1)原创 2020-06-17 13:58:24 · 159 阅读 · 0 评论 -
杨辉三角形(YangHuiTriangle)
杨辉三角形思路:首相定义一个二维数组,将二位数组的内容初始化为1。再将一半打印出来。以10*10为例然后在根据杨辉三角的特点,从第三行第二列开始将数字改变。每一个数字都是上一行的同一列的数字与上一行前一列的数字之和。以第三行第二列为例:arr[ 2 ][ 1 ]=arr[ 1 ][ 1 ]+arr[ 1 ][ 0 ]参考代码:` int arr[10][10];int i = 0;int j = 0;for (i = 0; i < 10; i++){for (j = 0; j <=原创 2020-05-25 12:30:49 · 338 阅读 · 0 评论 -
2020-04-01
学习了快一个礼拜了,这是第4次学习c语言了,第一次第二次学习的时候不懂得地方很多很多,尤其是第一次,第二次学习好像是为了应付考试,突击了一下,真正开始认真学习是在第三次,当时就感受到了c语言的奥妙,并且对c语言产生了兴趣,于是就越来越喜欢c语言并且想学好。这是第四次学习,目前已经把c语言的知识点复习了一遍,下来就是地毯式的复习,将各个小知识点都过一遍,在接下来的一个多月内,将会彻底把c语言学精。这...原创 2020-04-01 20:36:56 · 80 阅读 · 0 评论 -
2020-03-26
我是来自西安工程大学的一名学习软件工程专业的大二学生,从今天开始也就正式入驻在CSDN中了,也希望能通过这个软件了解更多关于IT的知识,让自己成为一个优秀的程序员。目前是大二,才开始慢慢了解这个专业,慢慢的深入学习,等到自己的专业知识学习的差不多了,也就是大三左右,会定下自己的人生目标,慢慢的计划着未来。现在的任务就是要努力掌握老师所讲的知识,争取一次性听明白,尽早学会应用,也要积累一些学校外的...原创 2020-03-26 14:58:03 · 109 阅读 · 0 评论