自定义博客皮肤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)
  • 收藏
  • 关注

原创 Java中的阻塞

BIO(同步阻塞IO)在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒绝请求,如果有的话,客户端的线程会等待请求结束后才继续执行。NIO(同步非阻塞IO)...

2019-08-16 10:13:30 458

原创 volatile理解

Java中能创建volatile数组吗能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组。我的意思是,如果改变引用指向的数组,将会受到 volatile 的保护,但是如果多个线程同时改变数组的元素,volatile 标示符就不能起到之前的保护作用了。Volatile能使得一个非原子操作变成原子操作吗(1)一个典型的例子是在类中有一个 long 类...

2019-08-15 10:30:36 179

原创 ORM的实现原理

对象关系映射对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了 。持久化持久(Persisten...

2019-08-13 09:31:03 1396

原创 数据库引擎InnoDB和MylSAM

MySQL引擎MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。...

2019-08-12 09:22:15 322

原创 Mybatis的一二级缓存+#和$的区别

一、二级缓存mybatis的查询缓存分为一级缓存和二级缓存,一级缓存是SqlSession级别的缓存,二级缓存是mapper级别的缓存,二级缓存是多个SqlSession共享的。mybatis通过缓存机制减轻数据压力,提高数据库性能。A.一级缓存:(1)mybatis的一级缓存是SQLSession级别的缓存,在操作数据库时需要构造SqlSession对象,在对象中有一个HashMap用于存...

2019-08-11 08:24:39 678

原创 数据库的锁机制

锁是一种并发控制技术,锁是用来在多个用户同时访问同一个数据的时候保护数据的。乐观锁认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此不会上锁,但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般通过版本号或CAS操作实现。悲观锁总是假设最坏的情况,每次取数据时都认为其他线程会修改,所以都会加锁,如读锁、写锁和行锁,当其他线程想要访问数据时,都需要阻塞挂...

2019-08-10 14:53:33 93

原创 JSP的内置对象和会话跟踪技术

Jsp中的内置对象(隐士对象)及作用(1)request:请求对象,包含来自GET/post请求的参数(2)response:响应对象(3)PageContext:页面作用域,网页的属性(4)session:会话对象(5)page:当前的jsp对象(6)application:应用程序对象,Servlet正在执行的内容(7)out:响应输出流(8)config:用来读取和jsp配置...

2019-08-09 09:08:48 659

原创 Servlet的生命周期

生命周期有三个,(1)首次被访问,调用构造方法,只调用一次;(2)当被服务器实例化后,容器运行他的init()方法,也只调用一次;(3)当请求Request到达时,运行其service方法,service方法会运行与请求对应的doXXX方法等,请求几次,调用几次;(4)当服务器决定将实例销毁时,调用其destory方法,只调用一次。以上这些方法是由tomcat容器来调用,这种方式称为控制...

2019-08-09 09:06:33 104

原创 Servlet的理解

Servlet是单实例多线程。(1)可以有多个Servlet来处理业务请求,比如针对登录,或者针对订单提交,可以定义两个Servlet。(2)Servlet是单实例的,对于同一种业务请求只有一个实例。当web服务器运行时,会读取web.xml的内容,加载所定义的Servlet,当然加载时会调用各自的init方法。(3)同一个servlet可以同时处理多个客户端的请求,比如同时有两个用户Mik...

2019-08-07 08:45:59 98

原创 Get和Post的两种请求方式有什么差别

原理区别:一般在浏览器中输入网址访问资源都是通过GET方式;在form提交中,可以通过method指定提交方法为GET或者POST,默认为GET提交。HTTP定义了与服务器交互的不同方法,最基本的方法有4种GET,POST,PUT,DELETE,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。表现形式上的区别:A.提交方式的区别:GET提交,请求的数据会附在URL之后,...

2019-08-07 08:44:02 559

原创 B+树

TCP和UDP1.TCPTCP充分实现了数据传输时各种控制功能,可以进行丢包的重发控制,还可以对次序乱掉的分包进行顺序控制。而这些在UDP中都没有。此外,TCP作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费。TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。2.UDPUDP不提供复杂的控制机制,利用IP提供面...

2019-08-05 09:46:46 109

原创 线程、线程池和ThreadLocal

什么是线程安全?(将自己的理解)(一)为什么会有线程安全问题?当多个线程同时共享同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读的操作不会发生线程安全问题。(二)如何解决多线程之间线程安全问题?使用多线程之间同步synchronized或使用锁(lock),将可能会发生数据冲突问题(线程不安全问题),只能让当前一个线程进行执行。代码执行完成后释放...

2019-08-03 11:08:46 951

原创 数据库索引总结

索引的概念:索引是对现有数据进行排序,在排序的结果中搜索,效率会很高。用主键 作为查询条件,主键会自动创建索引,搜索速度快;在表中的查询远远高于增删改时, 建立索引有意义。为什么要创建索引呢(优点)?这是因为,创建索引可以大大提高系统的性能。第一, 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二, 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,...

2019-08-03 10:56:45 138

原创 常用线程安全的集合总结

1.CopyOnWriteArraylist->vector(1)支持多线程并发读取(get/遍历),只支持单线程写入(add,remove);(2)当有修改操作发生时,会对原有的数组进行拷贝,拷贝出一个新的数组,修改操作在新的数组上发生,修改加锁。原有数组的查询操作不需要加锁保护,当修改线程执行完毕,再用新的数组替换原有的数组。(3)把读写操作分离开,读不加锁,写加锁,用空间换取读不...

2019-08-02 09:07:55 1095

原创 Java虚拟机总结

JVM体系结构1.Java虚拟机体系结构包括能装载字节码的类装载子系统、运行时数据区、执行引擎和本地(方法)接口。其中,运行时数据区包括方法区、堆区、栈区、程序计数器和本地方法栈模块。(1)方法区:存储类的相关信息A、这个类的全限定名,例如java.lang.ObjectB、这个类型的访问修饰符。C、字段信息(字段名、类型、修饰符)和方法信息(方法名、返回类型、参数数量和类型、修饰符)...

2019-07-31 08:39:39 108

原创 网络编程总结

TCP和UDP1.TCPTCP充分实现了数据传输时各种控制功能,可以进行丢包的重发控制,还可以对次序乱掉的分包进行顺序控制。而这些在UDP中都没有。此外,TCP作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费。TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。2.UDPUDP不提供复杂的控制机制,利用IP提供面...

2019-07-30 09:21:40 69

原创 Ajax的理解

使用的好处用一般的表单提交,当我们对视频网站评论时,提交表单发送请求,会导致页面刷新,而利用XMLHttpRequest js中的对象,它可以用来向服务器发送请求,但不会导致页面刷新跳转。定义 a——asynchronous,可以通过XMLHttpRequest对象发送异步请求; j——javascript a——and x——xml,指响应格式使用方法使用时,利用new XM...

2019-07-26 10:41:05 74

原创 java学习:web服务器问题总结

##分类管理静态内容:apache,nginx(管理html的内容)管理动态内容:tomcat,jetty(html和动态的都可以管理)##nginx常见命令及问题###1. 常见命令 start nginx //开启服务 nginx -s reload //重新加载配置文件 nginx -s stop // 强制停止...

2019-01-08 14:00:40 145 1

原创 java学习:javascript

##知识点思维导图以基础知识点进行系统总结##注意事项###1.数组类型中,sort()对数值的排序需要注意,如果调用空参,只是对数组元素按照字符串点的形式排序,因此,应该给其一个参数,eg:var arr=[1,2,3,2,3,22];arr.sort();<!--输出结果为[1,2,2,22,3,3]-->arr.sort(function comparator(a...

2019-01-04 09:16:21 115

原创 java学习:html和css总结

##html和css知识点总结本小节以HTML的结构为框架,进行知识点的总结,参考如下:<html> <head> <title>网页的标题</title> <meta charset="编码方式"> <style> .类名称 {要定义的样式}

2019-01-04 08:45:19 237

原创 Java学习:MYSQL总结

##知识点思维导图##常见误区###group by####group by 分组后,前面的列只能出现分组的列和组函数,不能有其他的列。eg:select sid,avg(score) from sc group by sid;select sid,cid,avg(score) from sc group by sid; //(x),不能出现cid,按照sid分组后,一个sid包 ...

2018-12-28 12:31:42 302

原创 java学习:javaSe总结

#JavaSe知识图##上图注解以上思维导图是根据自己对知识掌握情况进行的总结分类,对于自己不懂的进行了解释说明,自己会的和不是特别重要的有的没有详细说明。#总结经过两个月的基础学习,是边学边忘,经过一次系统的复习回顾,对前面基础知识不会的也得到了解决,刚开始学习是真的认真,练习和基础概念理解掌握很好,到最后的两周,事情特别多,没有以前花的时间多,练习就少了。因此,综合性的编程能力还是不行...

2018-12-08 20:32:05 314 3

原创 Java学习:枚举类、常见设计模式和网络

一、枚举类和常见设计模式知识体系二、主要代码1.枚举类public enum Sex { /** * 性别,可以在有参构造存在时,直接初始化 */ MALE("男"), FEMALE("女"); /** * 构造方法(不能私有) */ private String cnName; Sex(String...

2018-11-28 11:32:52 208 1

原创 Java学习:多线程

一、知识体系二、内存可见性问题1.volatile对共享的数据进行修饰,会立刻把更新的数据存入内存,其他线程读取数据时,会读到内存中的新值。synchronized和Lock也会保证可见性,但是他们是同一个时刻只能保证一个线程获取锁执行同步代码,释放锁之前把数据保存到内存中。但是,他们耗费资源,效果低。2.由于volatile(1)不是互斥锁,(2)不能保证原子性操作。因此,引出了CAS...

2018-11-20 19:46:47 97

原创 Java学习:IO流

一、IO流所有知识点二、代码演示(1)字符流复制文本文件public class CopyFile { public static void main(String[] args) throws IOException {// A:案例演示: 字符流复制文本文件 // 频繁的读写操作 InputStreamReader in = n...

2018-11-14 15:27:28 90

原创 Java学习 集合Set系列和Map系列+实例(二)

一、集合的思维导图二、相关知识点+代码解释1.Set系列(1)遍历集合的方法public class SetDemo { public static void main(String[] args) { //A:案例演示: HashSet存储字符串并遍历 HashSet<String> strings = new HashSet<...

2018-11-06 11:24:25 130

原创 Java学习:集合、增强版for语句和可变传参

一,知识体系二、注意事项及代码(1)集合的遍历//1、请编写程序,将自定义对象存储到ArrayList集合,使用泛型并遍历// a) 使用迭代器遍历// b) 使用列表迭代器遍历// c) 使用size()和get()方法遍历// d) 使用增强for遍历public class Student<S>{ ...

2018-10-31 16:47:40 165

原创 JAVA 常用类:正则表达式、Math类、Random类、System类、Date类和Calendar类+代码

一、知识点体系图二、代码演示及注意事项(1)正则表达式的代码实例public class Test4 { public static void main(String[] args) {// 需求:获取下面这个字符串中由三个字符组成的单词 正则表达式 \\b[a-z]{3}\\b// da jia ting wo shuo,jin tian yao ...

2018-10-31 16:28:03 168

原创 Java 匿名内部类、Object类、Scanner类、String类、StringBuffer类、包装类Integer和数组排序+代码解释

一、匿名内部类匿名内部类时局部内部类的简写,使用代码如下:public abstract class Animal {public abstract void eat();}public interface MyInterFace {public abstract void method();}public class Dog {public Animal dshow(){...

2018-10-24 16:58:49 242

原创 07Java学习:抽象类、接口、传参和内部类

此文包括四个部分,分别为抽象类、接口、传参和内部类的相关知识点的介绍,并以思维导图的形式展现出来,清晰、明了。

2018-10-17 11:20:52 221 1

原创 Java06学习 代码块、继承和多态总结

一、知识结构图及其详细概念二、注意事项(1)继承时只能是单继承,可以多层继承。(2)父类的私有成员是不能继承的。(3)多态中,父类不能访问子类特有的功能,需要向下转型。三、总结多态性是要在继承的前提下进行,有了继承,提高了的代码的复用性和维护性,多态不仅提高了代码的维护性,而且提高了代码的扩展性。...

2018-10-17 11:20:13 139 1

空空如也

空空如也

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

TA关注的人

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