自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java 中关于Integer的陷阱

在Java中,八大基本类型都有属于他们的包装类,但是int的包装类Integer就比较特殊我们先看一段程序 Integer num1 = 128; Integer num2 = 128; Integer num3 = 12; Integer num4 = 12; System.out.println(num1 == num2);...

2019-08-27 23:46:26 411

原创 JVM----双亲委托机制

Java是运行在Java虚拟机(JVM)上,我们在IDE上编写完的Java源代码被编译器编译成.class的字节码文件,然后由我们得到的CLassLoader负责将这些class文件加载到JVM中去执行;JVM中提供了三层的ClassLoader(不包括自定义类加载器):Bootstrap classLoader:启动类加载器,“主要负责加载核心的类库,将存放在\lib目录中等路径下被...

2019-08-27 23:42:12 358

原创 JVM----垃圾收集(Garbage Collection)算法

在Java中,通过可达性分析法来确定哪些垃圾是可以被回收的,然后就轮到我们的垃圾收集器开始进行收集了,由于Java虚拟机并没有规范并没有对如何实现垃圾收集器做出明确的规定,因此各个厂商的虚拟机可以采用不同的方式来实现垃圾收集器,以下是一些常见的垃圾收集器的核心思想标记—清除标记清除(Mark-Sweep)是最基础的一种垃圾回收算法,他分未两个部分,即 标记 和清除,先把内存区域中的这些对象进行...

2019-08-24 23:39:14 358

原创 单例模式的两种方式

设计模式就是一个思想,代码只是个表现性而已,就好比我们吃饭,都知道用筷子,但是筷子只是一个表现的形式而已,我们的思想是:只要是组合起来,能夹起来东西就可以了,所以我们用两根树枝,也可以吃饭,这个时候的表现形式就变成了树枝了单例设计模式:解决一个类在内存只存在一个对象想要保证唯一:为了避免其他的程序过多的建立该类的对象,先禁止其他程序建立类对象还为了让其他程序可以访问到该类对象,只好在本类...

2019-08-03 01:39:13 573

原创 Java集合Map

Map一个将键映射到值的对象,一个映射不能包含重复的键,每个健最多映射到一个值Map接口的一些共性方法添加put(K key, V value)putAll(Map<? extends K, ? extends V> m)删除clear();//清空remove(Object key)判断containsValue(Object value)conta...

2019-08-03 00:44:43 394

原创 Java集合的hashset和treeset的无序和唯一性

Set在集合Collection里面,有无序的Set和有序的List,这里讲解的是Set的实现类HashSet与TreeSetHashSet:数据结构是哈希表。线程是非同步的,保证元素唯一性的原理:判断元素的hashcode是否相同,如果相同还会判断元素的equals方法TreeSet:可以对Set集合中的元素进行排序,底层结构是二叉树,保证数据唯一性的依据:CompareTo的retur...

2019-08-02 21:48:09 1380 1

原创 Spring的@GetMapping和@PostMapping注解

@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写。

2019-08-02 01:30:19 1323 1

原创 springMVC搭配以及原理

springMVC简介Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),S...

2019-08-02 01:25:43 373 2

原创 web项目---fastjson更加fast的json解析器

在我之前的博客中,讨论到了GSON用来将Javabean和json之间的转化,这样方便的完成前后台数据交互的统一,但是在后来我用Java写爬虫时,又发现了一个比gson更强大的fastjson,他的对Java的解析效率更好,比Gson更好用FastJson这时阿里巴巴下的一个开源框架,可以用来对json数据的解析,它和它的名字一样,就是快,在功能强大的同时,还不依赖其他的任何类库,它主要以...

2019-07-20 00:57:41 1458

原创 web项目中---gson的基本使用

在开发时,我们经常会用到JSON的数据交换格式,而GSON则是谷歌提供的用来解析Json数据的一个Java类库1:JSONJSON是一种轻量级的数据交换格式,可用于数据的转化传输,他易于理解和编写,他的基本结构是对象、数组2:GSONGSON这在Java对象和JSON数据之间进行映射的Java类库,他可以将一个和Java对象转化为JSON形式,也可以将JSON形式的字符串转化为Java对象...

2019-07-20 00:25:56 601

原创 Spring框架---springmvc中ModelAndView使用

我们看一下使用的效果图吧package com.qcby.aile;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.Re...

2019-07-20 00:00:58 675

原创 正则表达式的使用

正则表达式正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母,0到9之间的数字)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。正则表达式是繁琐的,但它是强大的,他可以提高对字符串提取的效率许多程序设计语言都支持利用正则表达式进行字符串操作例子假如我们向一段字符串中提取出数字 ,...

2019-07-19 01:32:28 395

原创 数据库事务

数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成在数据库事务里面,可以包含一个或者多个操作,但这些操作构成一个逻辑上的整体,.构成逻辑整体的这些数据库操作,要么全部执行成功,要么全部不执行,构成事务的所有操作,要么全都对数据库产生影响,要么全都不产生影响,即不管事务是否执行成功,数据库总能保持一致性状态,即使在数据库出现故障以及并发事务存在的情况下...

2019-07-13 23:58:34 352

原创 TCP连接的三次握手和四次挥手(详解)

TCP连接为什么需要握手TCP为了实现可靠传输,发送方和接收方始终需要同步( SYNchronize )序号。 但是, 序号并不是从 0 开始的, 而是由发送方随机选择的初始序列号 ( Initial Sequence Number, ISN )开始 。 由于 TCP 是一个双向通信协议, 通信双方都有能力发送信息, 并接收响应。 因此, 通信双方都需要随机产生一个初始的序列号, 并且把这个起始...

2019-06-30 01:17:17 575

原创 form表单的多种提交方式及提交前验证

以下是本人总结处来的一些form的提交方式,网上还有别的提交方式,这里我总结了大小分为7类,其实就是三类的提交方式,若有哪里不对的,还请评论指出来,大家一起学习学习1、无任何验证提交(最普通的提交)该方式不提供任何的验证方式,当我们点击提交时(提交的前提一定是 <input> 的type="submit"或者加粗样式<button>的type=“submit”)for...

2019-06-21 23:22:16 21459

原创 快速了解Comparable和Comparator的用法与区别

最大的区别Comparable 是通过内嵌来使用,而Comparator是通过外调来使用在这里,内嵌和外调是我私自给予的名词,但我觉得已经能说明出他们在使用上的区别了内嵌的Comparablepublic interface Comparable<T>{ public int compareTo(T o);}Comparable实现于需要作为比较的类的内部,定义的类对...

2019-06-20 21:23:12 431

原创 通俗易懂:解析Java volatile

轻量级“锁” volatile在Java的多线程并发中,少不了synchronized 和volatile,synchronized 是个重量级的,在使用上,肯定会有较大的一个消耗,这个时候,如果条件允许的话,我们就可以使用volatile来代替我们的synchronized ,实现性能上的优化volatile是一个读安全,写不安全的角色volatile是一个对变量修饰的关键字,就和stat...

2019-06-18 22:13:19 442

原创 Mybatis的批量删除

Mysql在mybatis的批量删除在对表格进行操作时,我们免不了要进行批量删除,因为一条一条删除时,工作量太大了,谁也懒得动手那么多次,所以就需要批量删除了。按 di(一般为主键)批量删除在前端进行form提交时,无论是什么方式,都无法提交数组,所以这个时候我们可以先将我们的数据 json 化,然后通过Ajax的方式提交,在后台,我们利用一个 List来接收他,这个时候,我们就将我们需要删...

2019-06-15 17:37:55 1800

原创 Java中栈、堆、方法区的关系以及作用

栈Java 里的栈分为 虚拟机栈与本地方法栈,在大家口中经常说的栈,一般是指我们的虚拟机栈虚拟机栈Java 虚拟机栈(后面简称栈)是线程私有的,所以他的生命周期与当前线程是一样的,栈是用来描述方法执行的一个内存模型,因为每个方法在执行的同时,都会创建一个栈帧,而这个栈帧里面,又存储着局部变量表,操作数栈,动态链接,方法出口等一系列信息,下图为一般调用某一个方法时的栈内存图最里层的局部变量...

2019-06-09 20:37:40 2243

原创 计算机里面的原码、补码、反码

补码,原码,反码反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。(只需要将原码除符号位以外的位数取反,即0改为1,1改为0)对于正数来说,补码、原码、反都都是一样的补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1对于补码,有一种投机取巧的方式,即补码是在原码的基础上从最右边开始算,遇到第一个1后,后面的所有数(符号位除外)都取反,如源码:101...

2019-06-07 17:18:01 1895

原创 史上最简单易懂快速排序算法:一看就懂

快速排序定义:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。思路:先找出一个数(一般都是第一个数,即arr[0]),从这个数开始(即key = arr[0]),先从该数组的最右边开始找,直到找到第一个比该数小的数(假设找到的下标为j),此时,...

2019-06-03 20:56:20 1416 1

原创 Java 数组存储压缩原理,以及原因

数组在存储时的压缩原理以及原因这篇博客,都是以byte类型的数组为例子数组是一个物理空间连续的结构,对于数组,内存只记住开头的地址,记全部对内存损耗大在我们电脑内存里面,一般的话,内存单元都是占 4KB的大小,但是我们的 byte类型的大小为1B,也即是说,当我们命名一个数组时。如byte[] arr = new byte[1024];压缩数组的原因:为了节省内存对于上述数组,如...

2019-06-03 17:16:27 726

原创 Java 数值类型位运算

位运算运行速度最快的一种运算方式&:按位与|:按位或~:按位非^:按位异或<<:左位移运算符" >> ":右位移运算符" >>> ":无符号右移运算符除 ~ 以 外 ,其余 均 为 二 元 运 算 符 。 操 作 数 只 能 为 整 型 和字 符 型 数 据 按位与: 10101 01010 结果 0000...

2019-06-03 00:30:23 524

原创 Java stringbuilder StringBuffer String

stringbuilder 原理在Java中有String Stringbuilder Stringbuffer,但是 stringbuilder 时运行最快的一个速度 Stringbuilder > Stringbuffer > String,但是StringBuffer synchronized 关键字进行修饰,所以是时线程安全的,而Stringbuilder时不安...

2019-06-02 23:55:49 1085

原创 Java中的匿名对象

匿名对象:没有名字的对象 new Test();这就是一个匿名对象,但是,在Java一般不这么使用,因为没有意义,因为这样写完后,由于没有对该对象进行引用,所以马上就被内存回收了,所以没有实际意义package Test;public class Test { public static class Student{ public String name; pub...

2019-06-02 23:39:06 3141 2

原创 Controller @ResponseBody向前台传值乱码问题

字符串return时乱码当我们完成一个请求后,回调时传回了一个字符串,时,会发现字符串出现了乱码的情况上图我们可以看到,我们传回的为 “删除成功”,但是前台接收后,出现的却是乱码的情况打开Response时,我们发现,原来在前台回应的地方的编码格式为 ISO-8859-1,而我们在后台传回时,格式是UTF-8,所以出现乱码情况,尝试过改MVC处的编码,Tomcat的编码都没用,最后发现...

2019-05-24 12:43:04 656

原创 Eclipse里面搭建一个简单的web项目

Eclipse新建Servlet项目

2019-05-13 14:39:23 2194

原创 了解数组列表ArrayList

了解数组列表的存储方式

2019-05-03 00:21:45 575

原创 数据结构:单向链表的增删改查

单向链表定义:单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始;链表是使用指针进行构造的列表;又称为结点列表,因为链表是由一个个结点组装起来的;其中每个结点都有指针成员变量指向列表中的下一个结点;数据结构:public class LinkList{ public Integer date; public LinkList next;...

2019-04-29 13:45:03 894

原创 JavaScript里类的创建及“类继承”

类的创建在JavaScript里面,函数即时函数,也是方法,也是一个类等等,面向对象语言里,类的定义都是使用new关键字来定义类的,利用他来调用构造器,但是JavaScript确没有那么严格,这里函数就是类,所以用函数创建对象,返回的对象就是该类的实例<script type="text/javascript"> // 定义简单函数 function Person(name)...

2019-04-18 00:03:26 412

原创 JavaScript函数

JavaScript里函数的定义方式与函数的调用方式函数的定义函数的定义方式有三种: 定义命名函数 定义匿名函数 使用function类匿名函数作为弱类型语言,JavaScript既不需要函数的返回值,也不需要声明函数的参数类型;而函数的最大作用就是提供代码的复用,将需要复用带代码定义成函数1:定义命名函数<script type="text/javascript"&gt...

2019-04-17 21:38:43 394

原创 JavaScript的数据类型以及变量

JavaScript里面的数据类型、变量数据类型JavaScript里面,公有五个基本数据类型: 数值类型:包含正数和浮点数 布尔类型:只含有true和false 字符串类型:字符串变量和其他高级语言一样,必须用引号括起来,但是这里可以上双引号,也可以是单引号 undefined类型:专门用来确定一个已经创建但是没有初值的变量 null类型:用于表明某一个变量的值为空数值类型...

2019-04-17 17:39:41 630

原创 java String 类型应用

String,即字符串类型java里面没有内置的字符串类型,而是在标准的类库里面定义了一个预定一类字符串都是用双引号括起来的比如 str = “a”; 这代表的是一个名叫 str 的字符串,而 str = ‘a’ ,则代表一个字符,即char 类型,而不是String,在java里面,字符串类型不可以看成字符类型的一个数组,这点雨C++是有区别的。字符串类型,一定要用双引号括起来子串St...

2019-04-16 18:27:39 551

原创 静态块,构造块 构造函数以及 静态块调用构造对象的 执行次序

静态块,构造块 构造函数以及 静态块调用构造对象的 执行次序请看一段这些方法或者块的执行代码:package Test;public class People { private String name = "李四"; { System.out.println("初始化1"); name = "张三"; age = 20; } private int ag...

2019-04-10 19:39:26 545

原创 Java值传递方式详解:方法参数或参数的传递

java里面的方法参数在程序设计语言里面,有一些参数传递给方法的专业术语:按值调用;引用调用;以前还有的按名调用(Algol就是使用的这种)其中java使用的就时按值调用:这种方法的特点是只得到所有参数的拷贝,方法不能修改传递给它的任意参数变量的内容public class Main { public static void main( String[] args) { int ...

2019-04-10 18:26:11 709

原创 值传递:对变量执行交换方法,为什么值没有交换?

对变量执行交换方法,为什么值没有交换?public class Main { public static void main( String[] args) { Name tom = new Name(); Name jerry = new Name(); tom.setName("Tom"); jerry.setName("jerry"); swap...

2019-04-08 16:17:58 1687

原创 数组及其一些常见方法的使用

数组数组是一种数据结构,用来存储同一类型值的集合, 通过整形下标来访问数组中的每一个值数组的声明及其初始化声明:需指明其数据类型,类型后面紧跟 “[ ]”,最后是数组变量的名字;例如:int [] a;double[] d;上面的语句只是声明了一个变量,并没有初始化一个真正的数组,应该使用new关键字给数组初始化 例如:int[] a = new int[100]; double[]...

2019-04-01 15:12:43 568

原创 Java的基本数据类型

java中存在八种基本数据类型整形 类型存储需求取值范围 byte1字节-27 ~ 27-1 short4字节取值范围 int4字节取值范围 long8字节取值范围 ...

2019-03-31 10:47:03 525

原创 前端Form表单相关元素与属性的使用

表单的使用form元素form用于生成输入表单,但是该元素不会生成可视化部分,除了包含一些像id、style、class等通用属性外,还包含一下一些属性 action method enctype name target...

2019-03-25 13:36:27 1158

原创 Java 中float类型数的储存方式,以及为什么会丢失精度

先看一段代码 float a = 10.0000005f; float b = 10.000001f; double c = 10.0000005; double d = 10.000001; System.out.println("10.0000005f==10.000001f?" + (a == b)); System.out.pri...

2019-03-22 23:50:21 1269 1

单链表的增删改查(包含有序、无序、重复和不重复)

单链表的增删改查,包含有序、无序、重复和不重复,给出了数据结构,以及增删改查的源代码

2019-04-28

动态规划之矩阵连乘最优值

动态规划,矩阵连乘最优值,对于矩阵连乘中矩阵发排序,应用动态规划计算

2019-04-02

空空如也

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

TA关注的人

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