![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
wowoToffee
这个作者很懒,什么都没留下…
展开
-
AOP demo
那些aop的术语初看这么多术语,一下子都不好接受,慢慢来,很快就会搞懂。1.通知(Advice)前置通知(before) - 在目标方法被调用之前调用通知功能后置通知(after) - 在目标方法完成之后调用通知(不论程序是否出现异常),此时不会关心方法的输出是什么返回通知(after-returning) - 在目标方法成功执行之后调用通知异常通知(after-throwing) ...原创 2019-12-06 16:24:39 · 188 阅读 · 0 评论 -
SpringBoot+sockjs client+stompjs实现websocket
SpringBoot+sockjs client+stompjs实现websocket什么是sockjs-client sockjs-client是从SockJS中分离出来的用于客户端使用的通信模块.所以我们就直接来看看SockJS. SockJS是一个浏览器的JavaScript库,它提供了一个类似于网络的对象,SockJS提供了一个连贯的,跨浏览器的JavaScriptAPI,它在浏览...原创 2019-09-05 16:22:22 · 2695 阅读 · 2 评论 -
HttpClient 入门
HttpClient 入门 尽管 java.net 包提供了基础的功能,可以通过 HTTP 协议来访问网络资源,但它没有提供许多应用需要的灵活性或功能性。 HttpClient 通过高效,即时,并且富有特色的包填补 java.net 这一空缺,实现了 HTTP 绝大部分的标准和建议的客户端。 用于扩展,并为基础 HTTP 协议提供鲁棒性支持的 HttpClient 将受到那些构建...原创 2019-08-26 15:24:33 · 370 阅读 · 0 评论 -
JAVA HashSet 去除重复值原理
JAVA HashSet 去除重复值原理 今天在写SQL的时候,对数据进行去除重复的时候出了一个问题:[Err] ORA-00600: 内部错误代码, 参数: [kkqcbydrv:1], [], [], [], [], [], [], []。我只要加了 DISTINCT或者GROUP BY试图进行去重,就会报这个问题。我实在是解决不了这个问题,我只能想用代码来解决,我就想到了用Set 来进...原创 2019-08-15 16:10:21 · 844 阅读 · 0 评论 -
java自动生成代码
java自动生成代码 为了简化日常编写代码,根据公司的自身情况,编写了一个自动生成代码的简易工具。主要需要熟悉freemarker模板引擎,JDBC等相关知识;<dependency> <groupId>freemarker</groupId> <artifactId>freemarker</artifactId>...原创 2019-08-07 17:36:19 · 1074 阅读 · 0 评论 -
CAS(乐观锁)
CAS(乐观锁)1.什么是CAS(1)CAS(compare and swap) 比较并替换,比较和替换是线程并发算法时用到的一种技术(2)CAS是原子操作,保证并发安全,而不是保证并发同步(3)CAS是CPU的一个指令(4)CAS是非阻塞的、轻量级的乐观锁2.CAS算法理解(1)与锁相比,使用比较交换(下文简称CAS)会使程序看起来更加复杂一些。但由于其非阻塞性,它对死锁问题天生免...原创 2019-07-25 23:27:41 · 104 阅读 · 0 评论 -
java 线程池
java 线程池1.什么是线程池,它的作用是什么通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上,就像创建好一个池塘,里面放有鱼,需要的时候去抓,不需要的时候等他自由的游玩。创建好一个线程池,并且没有任务执行的时候线程将会闲置,等待其调用。它的作用是:减少了创建/销毁线程的消耗。同时执行的线程过多,就有可能导致系统资源不足而产生阻塞的情况运用线程池能有效的控制线程最大并发数,...原创 2019-07-24 23:17:42 · 85 阅读 · 0 评论 -
java多线程
java多线程1.进程和线程腾讯面试题04.进程和线程的区别?2.守护进程和非守护进程JAVA守护线程 非守护线程3.基础知识[多线程和Lambda表达式](转载 2019-07-11 22:34:24 · 54 阅读 · 0 评论 -
JVM(2)-- 内存区域
JVM(2)-- 内存区域原创 2019-07-15 20:31:38 · 85 阅读 · 0 评论 -
JVM(1)-- 线程和进程
JVM(1)-- 线程和进程1.什么进程和线程进程:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。(仅相当于启动一次迅雷下载器,此时后台就会有一个进程)线程:线程是进程的一个实体,多个线程可以属于同一个进程。是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少...原创 2019-07-14 10:01:56 · 226 阅读 · 0 评论 -
NIO学习笔记(5) -- Selector
NIO学习笔记(5) – Selector Selector 允许一个单一的线程来操作多个 Channel. 如果我们的应用程序中使用了多个 Channel, 那么使用 Selector 很方便的实现这样的目的, 但是因为在一个线程中使用了多个 Channel, 因此也会造成了每个 Channel 传输效率的降低.为了使用 Selector, 我们首先需要将 Channel 注册到 Sele...原创 2019-06-23 20:05:32 · 103 阅读 · 0 评论 -
shiro学习笔记(6) -- spring boot 整合Shiro
6.shiro学习笔记(5) – spring boot 整合Shiro在pom 中添加:<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring-boot-starter</artifactId> <version...原创 2019-06-25 10:06:00 · 151 阅读 · 0 评论 -
NIO学习笔记(4) -- Scatter/Gather
NIO学习笔记(4) – Scatter/Gather 分散(scatter)从 Channel 中读取是指在读操作时将读取的数据写入多个 buffer 中。因此,Channel 将从 Channel 中读取的数据 “分散(scatter)” 到多个 Buffer 中。 聚集(gather)写入 Channel 是指在写操作时将多个 buffer 的数据写入同一个 Channel,因此,C...原创 2019-06-20 23:01:17 · 106 阅读 · 0 评论 -
NIO学习笔记(3)-- 零拷贝
NIO学习笔记(3)-- 零拷贝1. 分析传统IO是怎么网络传输File file = new File("index.html");RandomAccessFile raf = new RandomAccessFile(file, "rw");byte[] arr = new byte[(int) file.length()];raf.read(arr);Socket socke...原创 2019-06-20 21:45:18 · 240 阅读 · 0 评论 -
NIO学习笔记(2)-- Buffer的浅拷贝和深拷贝
NIO学习笔记(2)-- Buffer的浅拷贝和深拷贝1. Buffer的7种类型 ByteBuffer, CharBuffer, ShortBuffer, IntBuffer, LongBuffer, FloatBuffer, DoubleBuffer由于ByteBuffer类型比较特殊,他能其他的所有类型(理解起来也不复杂,因为底层存的类型就是Byte)public class Ni...原创 2019-06-19 22:11:02 · 2851 阅读 · 0 评论 -
NIO学习笔记 (1) -- 入门
NIO (1)入门1. I/O 和 NIO的主要区别IONIO面向流面向缓冲阻塞IO非阻塞IO无选择器2. 面向流与面向缓冲 Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。java IO面向流就意味每次都是从流中读取多个字节(字符最后也会转换为字节)。NIO中的Buffer 是一个对象, 它包含一些要写入或者...原创 2019-06-18 22:28:26 · 87 阅读 · 0 评论