11 2018 档案
摘要:一.添加依赖包 二.编写业务逻辑类 这次业务逻辑类为一个计算功能的,简单起见只写了一个除法,理解思想就行... 三.编写切面类 这里比较重要,有@Aspect标注为切面类以和业务类分开,还有切点表达式的编写,以及通知类型等标签的使用。 四.AopConfig类 这个类相当于以前的applicatio
阅读全文
摘要:一.Java中的注解 1.概述: java在jdk1.5之后引入了注解,如果你想自定义注解可以使用@Interface来定义,可以看一下@Override的源码。 2.元注解: 如上面的代码,元注解可以说是注解注解的注解,有点绕...其实就是定义这个注解的基本特征和功能等。 @Retention:用
阅读全文
摘要:一.概述 Netty基于NIO的网络编程框架,是一个封装了NIO复杂的底层细节,可以拿来开发高并发的服务端和客户端的程序,简单直白你可以理解它就是一个好用的处理socket的东西就行啦。 二.Netty初体验 首先,创建maven工程添加Netty依赖,新建两个包,一个是客户端,一个服务端,先来看看
阅读全文
摘要:一.概述 1.NIO是什么? NIO,有人叫New IO,因为它是jdk1.4之后才加进来的。但是其实更加准确的定义是non-blocking IO,就是非阻塞IO。总所周知,传统的IO操作是阻塞的,效率不高,浪费cpu的性能。NIO的到来就解决了这个问题。 2.BIO,NIO,AIO? BIO:同
阅读全文
摘要:一.单例模式 1.饿汉式 2.懒汉式 3.懒汉式的线程安全问题 这个测试类是这样的,在CarSingleton的私有构造方法里面,设置一个记录变量,每实例一次就自增一次,如果是正常情况,应该是只是调用了一次,我们建了20个线程,每个线程都试图去获取Car实例,看看情况是怎样的,首先是把getCar方
阅读全文
摘要:一.概述 1.序列化:是指将对象转化为二进制数据,保存到磁盘中 2.反序列化:将保存在磁盘中的二进制数据转化回对象。 3.作用: 1.将对象持久化,从内存中保存到磁盘,这次的分布式session需要缓存到redis服务器时进行序列化与反序列化。 2.当你想用套接字在网络上传送对象的时候。 二.怎么使
阅读全文
摘要:一.主机和虚拟机互相ping测试 先是主机ping虚拟机,这时要注意,主机要设置手动获取ip,ip的网络段要和虚拟机的一样,这主要在网络共享中心的更改适配器的ipv4的协议里面更改。 然后主机就可以ping通了,这里ping 的地址是在虚拟机里面ifconfig查出来的第一个ip地址,看到丢失为0就
阅读全文
摘要:一.线程池的使用 1.并发包线程池的体系 java.util.concurrent.Executor : 负责线程的使用与调度的根接口 |–ExecutorService:Executor的子接口,线程池的主要接口 |–ThreadPoolExecutor:ExecutorService的实现类 ,
阅读全文
摘要:一.文件目录 1.他策划骗人撩妹(t(touch,tail),c(cat,cd,cp),e(echo),h(head,history),p(pwd),r(rmdir,rm),l(ln,ls,less),m(mv,mkdir,more)) 二.系统常用 三.时间日期 四.搜索查找类 1.find: -
阅读全文
摘要:一.进程 1.进程的特征 结构:一般来说进程有三部分组成,分别是程序段,数据,PCB(进程控制块),这三部分组成我们通常说的进程实体。 动态:具体来说,进程是指程序的一次执行过程,有创建有消亡等生命周期。 并发:进程可以多个并存与内存中,可以同时运行。 操作系统中,对进程的定义是:进程实体的运行过程
阅读全文
摘要:一.Explain是什么 explain是mysql里面用于分析sql语句在执行计划的,如下图,使用方法就是在sql语句之前加上这个关键字,然后通过下面的信息来分析这个sql语句。 二.字段详解 1.id:select查询的序列号,如果id全部相同,则执行顺序由上到下。如果id全部不同,递增,id越
阅读全文
摘要:一.SprinMvc 的数据绑定问题 1.默认支持的类型 HttpServletRequest 对象,HttpServletResponse 对象,HttpSession 对象。这些对象在Controller的方法形参直接使用就可以,这些都是默认的声明。 2.基本数据的绑定 基本上前台有两种方式传递
阅读全文
摘要:一.SpringMvc上传组件简介 MultipartResolver,SpringMvc的文件上传就是通过这个组件来完成的。使用的话要在SpringMvc的配置文件Dispatch-Servlet里面配置multipartResolver这个bean了,再配置一下最大上传的大小,编解码字符集等,如
阅读全文
摘要:一.Condition 概述以及API 1.概述 在java1.5之前,线程之间的通信主要通过notify和wait。而Condition支持多路等待,就是定义多个Condition,每个Condition控制一个支路,典型问题生产者和消费者问题现在可以通过这个接口来进行优化。 2.API 1.aw
阅读全文
摘要:一.使用线程池的两个关键点 1.尽量减少线程切换和管理的开支 所以使用的时候要求线程数尽量少,这样可以减少线程切换和管理的开支。 2. 最大化利用cpu。 这个点要求尽量多的线程数,最大化的利用cpu 二.对不同的应用场景的处理策略 1.耗时短的场景 这个时候尽量减少线程数,如果保证完成任务就行,如
阅读全文
摘要:一.在I/O中存在的编码 1.读,Reader,InputStream,InputStreamReader。 Reader是读字符的父类,InputStream是读字节的父类,InputStreamReader是读取字节到字符的桥梁,它是委托StreamDecoder去做的。 2.写,Writer,
阅读全文
摘要:一.对象的内存布局 1.对象头 存储对象自身的运行时数据,如哈希码,GC分代年龄,锁状态标志,偏向线程ID,官方称为Mark Word。 类型指针,虚拟机通过这个指针来确定这个对象是哪一个类的实例。 记录数组长度的数据,不是数组时没有。 存储对象自身的运行时数据,如哈希码,GC分代年龄,锁状态标志,
阅读全文
摘要:一.定义 cpu保存上一次的任务状态,加载下一个任务这个过程为一次上下文切换。 二.线程上下文切换的原因 1.正常时间片完了之后的正常调度。 2.执行任务时遇到IO阻塞,挂起当前线程加载下一个线程。 3.多个任务抢占锁资源,当前任务没有抢到锁资源,被调度器挂起,继续下一任务。 4.用户代码挂起当前任
阅读全文
摘要:一.简介 1.定义以及作用: 用于创建锁和其他同步类的阻塞原语,也就是Lock 的爸爸? 2.许可(permit): LockSupport通过许可(permit)实现挂起线程、唤醒挂起线程功能,有了permit就不会挂起(免死金牌)。 3.pack与uppack pack(阻塞线程):挂起线程,当
阅读全文
摘要:一.控制并发访问资源的利器-信号量Semaphore 1.定义及作用 它是一种计数器,用来保护一个或多个共享资源的访问,计数器大于0表示可以使用资源,如果为0,线程会休眠到计数器大于0,线程完成资源使用后,信号量要被释放,释放会使计数器加一。 2.使用方法 1.首先调用acquire()方法获得信号
阅读全文
摘要:一.什么是死锁? 死锁是由于两个或以上的线程互相持有对方需要的资源,导致这些线程处于等待状态,无法执行。 二.产生死锁的四个必要条件 1.互斥性:线程对资源的占有是排他性的,一个资源只能被一个线程占有,直到释放。 2.请求和保持条件:一个线程对请求被占有资源发生阻塞时,对已经获得的资源不释放。 3.
阅读全文
摘要:一.java内存模型的诞生原因以及作用 1.诞生原因 java虚拟机中规范定义的一种内存模型,来屏蔽调各种硬件和操作系统之间的内存访问差异,为了实现java程序在各种平台都能达到一致的内存访问效果。这是它诞生的缘由。 2.作用 其实这个内存模型主要就是去定义程序中各个变量的访问规则,即在虚拟机中将变
阅读全文
摘要:1.数据库的锁作用 主要防止幻读,脏读,不可重复读,处理数据库并发。 2.锁的分类 a.根据锁的粒度来分,有行级锁以及表级锁。 <1>表级锁:MyIsam就是用的表级锁,它是偏向读的,在执行select查询操作的时候,会自动给涉及的表加上读锁,总所周知,读锁会阻塞写,所以当一个线程在读时,其他人是可
阅读全文
摘要:一.Tcp的作用 1.提供面向连接,可靠的字节流服务。 a.面向连接是说,交换数据前要建立连接。 b.可靠是通过把数据分割成数据块,以及超时重发的机制。 c.字节流是指程序之间的数据传输是通过字节构成的字节流。 二.Tcp报文首部详解 首先来看看Tcp包首部,其中主要有端口号,数据包序号,确认序号,
阅读全文
摘要:一.equals与== 1.equals方法 a.默认情况下如果是继承超类的equals方法其实底层也是用了==,也是比较引用的地址,但是我们可以重写这个方法,让它按照我们想要的方式去比较对象的内容。 b.属于Object类的方法,可以重写,私人订制。 2.== a.用于比较变量或对象的内存地址一不
阅读全文
摘要:一.八种数据类型以及其封装类 1.一共为四种: 整型:byte,short,int,long,占用字节分别为1,2,4,8,默认值都为0。 浮点型:float,double,占用字节为4,8,默认值分别为0L和0。 字符型:char,占用字节为2,默认为空。 布尔型:boolean,占用字节为1,默
阅读全文
摘要:一.什么是索引? 1.索引 一种帮助数据库高效获取(已经排序而且查找快)数据的数据结构,记住,它是一种数据结构。那么根据已经学习了的数据结构,它是用的哪种呢?别急,先来了解一下索引的分类。 2.索引的分类 1.B-Tree索引:大部分引擎支持,这也是我们学习的重点,也是平时使用最多的。 2.Full
阅读全文
摘要:一.什么是横向越权和纵向越权. 1.横向越权:攻击者想访问与他权限相同的用户,例如:在忘记密码回答问题成功后,会跳到重设密码的页面,这个时候如果用户随意填用户名和密码,而且数据库也刚刚好存在这个用户时,那么就会修改其他用户的密码,这就是横向越权 2.纵向越权:低级别攻击者想访问高级别用户的资源。 二
阅读全文
摘要:高复用服务响应对象的设计与使用 一.什么是高复用服务响应对象?它有什么作用? 1.这次项目中,为了实现前后端分离,设计了一个所有接口都使用,封装后台业务数据放回json数据给前端的对象,用于实现前后端的分离,开发效率有了明显的提高。 二.怎么使用? 1.首先,要明确,这个对象要实现序列化接口。它主要
阅读全文

浙公网安备 33010602011771号