自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 问答 (2)
  • 收藏
  • 关注

原创 手写一个简单服务器

今天来手写一个简单服务器!让你知道例如像tomcat之类的服务器是如何处理浏览器请求响应网页滴!1.HTTPhttp 是 超文本传输协议,有请求,有响应。协议嘛,肯定是一种规定,要传什么什么样的数据。请求格式是这样滴:例如:请求行:GET /index.html HTTP/1.1\n请求头:HOST:www.baidu.com\n\n\n请求体:bulalallalallal响应格式是这样滴:例如:响应行:HTTP/1.1 200 OK\n响应头:Content-Type:text/

2020-10-31 15:39:55 723

原创 SpringBoot文件上传(Ajax)

1.准备前端页面<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>fileup</title> <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script></head><body>

2020-06-22 16:15:10 484

原创 SpringBoot添加thymeleaf模板

springboot整合thymeleaf十分简单,你不用做任何配置,只需要添加thymeleaf依赖即可直接使用。下面给出例子。1.创建springboot工程添加依赖当然也可以直接在工程的pom文件中添加: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymelea

2020-06-22 11:06:12 661

原创 SpringBoot属性注入

这里写出两种从properties文件中获得属性值得两种方式你可以自己创建一个properties,当然也可以使用默认的application.properties。book.properties内容如下book.name=llbook.price=301.使用@Value@Component//如果是使用自己定义的properties需要下面的注解注明位置,如果写在application.properties中则不需要@PropertySource("classpath:book.pr

2020-06-22 10:04:59 136

原创 Spring Bean的生命周期函数

首先:InstantiationAwareBeanPostProcessor接口的postProcessAfterInstantiation方法返回的是false和本文走的不是一样的步骤,结果如何可以根据我提供的代码自行尝试上图是一个大概的流程,接下来做具体解释:1.实现了BeanFactoryPostProcessor的类实例化2.调用BeanFactoryPostProcessor的p...

2019-10-02 17:50:20 440

原创 java排序算法选择排序,插入排序,二分查找

选择排序选择的是最大或者最小数的下标public int[] selectSort(int[] arr) { for(int i=0;i<arr.length;i++) { int min = i; for(int j=i+1;j<arr.length;j++) { if(arr[min]>arr[j]) { min = j; ...

2019-09-25 17:53:29 118

原创 基于jdk1.8 HashTable源码解析,put,addEntry, rehash图文

HashTable和HashMap一样,都是通过哈希表实现的,但不同的是,HashTable是线程安全的,在1.8中,它们不一样的地方有很多。从put方法进入public synchronized V put(K key, V value) { // Make sure the value is not null // value值不可以为空 if (valu...

2019-09-19 23:20:13 466

原创 Oracle之分页

我们需要oracle中一个特殊的关键字rownum例如我们查询emp表中第2条到第5条数据select * from(select rownum as rowno,t.* from emp t where rownum<=5) where rowno>=2结果展示:...

2019-09-19 20:37:54 79

原创 Oracle之游标

游标是用来操作PL/SQL中查询出来的结果集的我们直接上例子declare --声明游标,可以带参数,也可以不带 cursor vrows(dno number) is select * from emp where deptno=dno; --声明游标中数据类型,这里是PL/SQL记录型变量,用于表示一行数据 vrow emp%rowtype;begin --打开游标...

2019-09-19 20:21:23 113

原创 GOF23之观察者模式

当一个对象发生变化时(目标对象subject),他通知其他对象(观察者对象observer),其他对象作出相应,这就是观察者模式。下面直接上代码接口Observer定义了update(Subject)方法,当目标对象改变时,它的实现类(观察者对象)将调用这个方法做相应public interface Observer { void update(Subject subject);}...

2019-09-19 17:45:45 98

原创 关于jdk1.8 HashSet,HashMap的一些源码的分析1(resize())

本文主要从HashSet的add方法开始,去了解HashSet存储数据的过程以及它的一些数据结构。直接开始吧以下是HashSet的add方法源码:public boolean add(E e) { return map.put(e, PRESENT)==null; }map的定义是private transient HashMap<E,Object> ...

2019-09-14 15:17:47 223

原创 MySql索引种类以及使用注意事项

索引类型:1.普通索引最常使用的索引,create index index_name on table_name(col_name(length))2.唯一索引和普通索引类似。索引列值唯一,和主键不同,允许有空值create unique index index_name on table_name(col_name(length))3.全文索引仅适用于MyISAM的存储引擎存储的...

2019-09-11 10:04:00 155

原创 GOF23之动态代理模式

代理:给目标对象提供一个代理对象,并由代理对象控制对目标对象的引用作用:在不改变目标对象方法的情况下对方法进行增强应用:aop,mybatis接口化编程例子:首先接口Apublic interface A { int function1(); String function2();}目标对象的类实现了这个接口public class AImpl implement...

2019-09-10 15:54:23 169

原创 MySql行转列的方法,case when

例如下表将其转换为在oracle中,我们能使用decode函数,在mysql中decode函数和oracle该函数功能是不同的,我们需要使用case when then end(注意要有end),sql语句如下SELECT t.ddate,MAX(CASE t.res WHEN '胜' THEN t.count END) AS "胜",MAX(CASE t.res WHEN '负' ...

2019-09-06 08:49:21 331

原创 GOF23之工厂模式

需要一个接口Animalpublic interface Animal { void cry();}两个实现类Cat和Dog实现了Animal 的cry方法public class Cat implements Animal { @Override public void cry() { System.out.println("喵喵喵"); }}public cla...

2019-09-05 16:52:26 91

原创 线程同步的6种方法

1.synchronize做用在静态方法上和作用在代码块上(锁对象是类名.class)效果一样public class SynThread1{ public static void main(String[] args) { new Thread() { public void run() { print1(); }; }.start(); new Thr...

2019-09-05 16:36:44 395

原创 java创建线程的几种方式

1.继承Thread类,重写run方法public class Thread3 { public static void main(String[] args) { new Thread("线程1") { public void run() { for(int i=0;i<5;i++) { System.out.println(Thread.currentTh...

2019-09-05 16:19:04 82

原创 java偏向锁,自旋锁,轻量级锁,重量级锁,重入锁

重量级锁:一个同步的A线程对应着一个monitor对象(该对象和锁对象是异议对应的关系,用来记录等待获得锁对象的锁标记的线程和已经获得锁标记的线程),堆空间对象的对象头上会记录一个,这个锁信息指向monitor对象,monitor对象监控在对象头中的锁信息,B线程还想到该对象内去获取锁信息时,因为对象头中锁信息已经指向了monitor对象,所以B无法获取到锁对象的对象头中的锁标记,进入等待队列(锁...

2019-08-12 20:04:20 290

原创 GOF23之适配器模式

当两个类不兼容但是我们希望他们在一起可以相互转换或者一起使用时,使用到了适配器模式假设这两个类是A和B现在我们希望A可以使用B中的方法,这时候就需要一个接口来连接他们public class A{ public void a(Target t){ t.reqTob(); }}public class B{ pubic void b(){ System.out.printl...

2019-07-24 22:20:07 69

原创 解决post请求,enctype="multipart/form-data"时中文乱码和无法使用getParameter()的问题

使用下面代码得到Fileitem 对象 list,将ServletFileUpload 对象up设置UTF-8编码DiskFileItemFactory fa = new DiskFileItemFactory(); ServletFileUpload up = new ServletFileUpload(fa); up.setHeaderEncoding("UTF-8"); ...

2019-07-09 09:56:43 2266 1

原创 java TreeSet,TreeMap——红黑树原理

在java中使用TreeSet集合时,需要对加入的元素进行比较,对于同一个类的元素之间进行比较,需要实现Comparable接口的compareTo(Object obj)方法,对于不同类之间的元素比较,需要实现Comparator接口的compare(Object obj1,Object obj2)方法加入元素的add(Object obj)方法的内部: public boolean add...

2019-05-10 16:53:32 338

原创 方法的重载

重载:改变参数数量或者改变参数类型public class Super { public void test1(int a,int b) { } public void test1(int a,int b,int c) { } public void test1(double a,int b) { } }改变返回类型是不可以的但同时改变了参数...

2019-04-26 17:46:39 94

原创 Java 接口没有构造方法,默认修饰,多继承,属性初始化

1.修饰interface的访问修饰符只能是public或者无访问修饰符(default)。public interface Test2 {}interface Test {}2.接口不可以有构造方法3.接口允许多继承,但继承的一定要是接口,不可以是类,不可以是抽象类下面的One ,Two是接口interface Test extends One,Two{ }4....

2019-04-26 17:31:43 2717

原创 java变量的定义和初始

1.static修饰的变量只能在所有方法外定义,不可以定义在任何方法内,没有初始化的话将在类加载时被初始化为默认值,可以被子类继承。2.普通变量全局变量可以不用初始化,对象在创建时会默认初始值,局部变量(方法体内变量)如果不初始化,将在该方法内用到它时产生编译错误。3.final修饰为常量,在类内必须初始化,否则直接编译错误。虽然可以定义在方法体内不保存但是不建议。...

2019-03-16 14:41:31 482

原创 java对 二进制 八进制 十六进制的书写区分

二进制以0b开头八进制以0开头十六进制以0x开头

2019-03-16 14:22:30 747

原创 java static关键字

static关键字修饰变量(全局变量),方法,代码块。1.修饰变量 字节信息进入jvm时(类的加载),static 修饰的变量(如果是static final 修饰就可以称为静态常量)已经开始初始化(普通类中的全局变量在调用构造方法,即new对象时初始化,而方法中的局部变量不会初始化,必须要方法中赋值后在使用,否则报编译异常)。static修饰的变量属于静态变量,注意与静态常量,常量(f...

2019-03-16 14:18:38 98

原创 HTML+js实现简单的打地鼠小游戏

首先是内容和样式这里是建立了3*3的方格statu属性用于记录是否砸中了地鼠 &lt;style type="text/css"&gt; *{ margin: 0; padding: 0; } .main{ width: 300px; height: 300px; margin:100px auto; } tr{ height: 100...

2019-01-08 18:10:49 5965 1

原创 js计算小数时的误差原因以及分析解决的方法

我们不防用js计算一下下列的代码,看看浏览器弹出的结果&lt;!DOCTYPE html&gt;&lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;/body&

2019-01-04 23:14:54 2369

原创 Html+javascript实现一个简单的计算器,可继续计算

先展示出计算器的大致样子&lt;body&gt; &lt;div id="main"&gt; &lt;table frame="box" rules="all"&gt; &lt;tr&gt; &lt;td colspan="5" &gt;&lt;input type="text" id=&qu

2019-01-04 13:40:02 3765 1

原创 JavaScript如何判断一个字符串里包含的只有number类型

首先将numString用new Number(numString)转换成numvar num = new Number(numString);不可以使用parseInt();因为这个方法会将带有字符的数字转换为只有数字的类型当numString中含有其他字符时,num的值会变为NaNnum.toString() == "NaN"用toString()方法与“NaN”比较,返回值为f...

2019-01-03 14:43:19 1381

原创 HTML+js实现简单的五子棋

我们首先创建一个棋盘,是一个画布,我们可以在上面画出棋盘CSS给棋盘阴影,我们可以看出棋盘大致轮廓。&lt;!DOCTYPE html&gt;&lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8" /&gt; &lt;title&gt;五子棋&lt;/title&gt; &lt;style type="text

2019-01-02 22:03:31 3509 8

空空如也

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

TA关注的人

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