- 博客(60)
- 资源 (12)
- 收藏
- 关注
原创 JVM参数简介
参考文档地址:https://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.htmlhttps://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html#BGBCIEFC-XmnsizeSets the initial and maximu...
2020-01-07 13:52:24 245
原创 Java并发------CopyOnWriteArrayList
前言我们所知 Map 双列集合的 Hashtable 和 Collection 单列集合的 Vector 是线程安全的,但是这两种方式都是简单粗暴的使用 synchronized 对涉及方法进行加锁,效率很低下。所以 Java 并发包中对 HashMap 提出了一种效率更高的一种线程安全的方式,也就是 ConcurrentHashMap,并且在 Jdk8 中性能得到了再次提升。而对于 List...
2019-08-15 17:13:38 245
原创 Java并发------JDK8 CompletableFuture
一、runAsync 和 supplyAsync1、runAsync 的基本使用:无返回值,持有一个 Runnable 对象。System.out.println("begin");CompletableFuture.runAsync(() -> { try { System.out.println("before sleep"); Thread...
2019-08-15 13:48:01 2323 1
转载 Java并发------彻底理解ThreadLocal
转载地址:https://www.fangzhipeng.com/javainterview/2019/03/24/threadlocal.html彻底理解ThreadLocal深挖过threadLocal之后,一句话概括:Synchronized用于线程间的数据共享,而ThreadLocal则用于线程间的数据隔离。所以ThreadLocal的应用场合,最适合的是按线程多实例(每个线程对应一个...
2019-07-25 16:51:58 161
转载 Java并发------Synchronized使用
前言本文介绍 Java 实现安全的方法,主要与 synchronized 相关的一些方法。一、synchronizedsynchronized 是 Java 提供多线程通信最基本的一种机制,出现的比 ReentrantLock 早,它是使用监视器(monitor)来实现。Java 每个对象都关联了一个监视器,线程可以对其进行加锁和解锁操作。在同一时间,只有一个线程可以拿到对象上的监视器锁。如...
2019-01-07 16:40:09 226
转载 Java并发------并发队列 BlockingQueue
一、BlockingQueue 简介BlockingQueue 接口继承了 Queue,它是一个先进先出的队列(Queue),为什么说是阻塞(Blocking)的呢?是因为 BlockingQueue 支持当获取队列元素但是队列为空时,会阻塞等待队列中有元素再返回;也支持添加元素时,如果队列已满,那么等到队列可以放入新元素时再放入。BlockingQueue 对插入操作、移除操作、获取元素操作...
2019-01-03 17:42:03 182
转载 Java并发------并发基础之内存模型JMM
一、并发三问题1、重排序试着运行一下下面的代码:public class Test { private static int x = 0, y = 0; private static int a = 0, b =0; public static void main(String[] args) throws InterruptedException { ...
2018-12-27 17:18:57 149
转载 Java并发------AbstractQueuedSynchronizer之共享模式(三)
一、CountDownLatchCountDownLatch 是 AQS 共享模式使用的锁,共享的概念就是 N 条线程需要同一把锁,当 N 条线程全部执行完成后,才会继续向下执行。这是一个简单应用:public static void main(String[] args) { CountDownLatch startSignal = new CountDownLatch(1); ...
2018-12-26 15:24:33 191
转载 Java并发------AbstractQueuedSynchronizer之ReentrantLock(一)
一、AbstractQueuedSynchronizerAbstractQueuedSynchronizer 是 Java 并发包的基础工具类,是实现 ReentrantLock 等的基础。后面 AbstractQueuedSynchronizer 简称 AQS。1、先说一下 ReentrantLock 的使用方法:public class OrderService { privat...
2018-12-26 15:23:56 164
原创 Java并发------HashMap和ConcurrentHashMap详解
HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至 HashSet 本身就采用 HashMap 来实现的。 通过 HashMap、Has
2018-12-06 15:37:25 401
转载 我的java问题排查工具单
转载:https://yq.aliyun.com/articles/69520前言平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常觉得帮助很大的工具,大家一起进步。Linux命令类tail最常用的tail -ftail -300f shopb...
2018-11-12 15:27:00 169
原创 Java使用Mongodb和Mongodb基本语法
一、springboot操作MongoTemplate的简单应用:1、基本查询新建对应mong表中的实体类:/** * @Description:测试实例 * @Author:wb */@Document(collection = "yylive_new_web")//对应数据的表名@Data@NoArgsConstructorpublic
2018-10-30 20:15:14 6560
原创 idea使用
二、插件集合1、Lombok用于减少重复代码,在实体类中,可以不再书写get、set、toString等方法,只要提供出基本的成员变量即可,后续增加成员变量时,也不需要再重新生成get、set、toString方法。 使用:引入Lombok的jar包,在类上或者成员变量上使用注解即可,详细使用有官方文档@Data,@NoArgsConstructor等;idea引入Lombo...
2018-08-20 18:01:25 1426
原创 mysql索引学习
一、索引类型1、唯一索引(主键)建表语句:CREATE TABLE `person` ( `ID` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`ID`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;2、普通索引建表语句:CREATE TABLE `per...
2018-07-06 15:46:25 1514
原创 map遍历的几种方式和效率问题
一、map遍历的效率先创建一个map,添加好数据:Map<String, String> map = new HashMap<>();for (int i = 0; i < 1000000; i++) { map.put(i + "", i + "AA");}1、keySet的for循环方式://只获取keypublic static v...
2018-07-05 10:09:21 22467 5
原创 开发颠覆者SpringBoot实战---------SpringCloud学习
spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。一、服务注册中心pom文件:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;dependencyManagement&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; &amp
2018-06-11 11:01:55 4672 1
原创 开发颠覆者SpringBoot实战---------SpringBoot的数据访问学习
一、SpringBoot和mybatis整合1、使用mybatis generator 自动生成代码创建新文件resources\generator\generatorConfig.xml:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;?xml version=&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;1.0&am
2018-05-29 15:47:02 801
原创 开发颠覆者SpringBoot实战---------SpringBoot的Web学习
SpringBoot提供了spring-boot-starter-web为Web开发予以支持,Web相关的自动配置存储在org.springframework.boot.autoconfigure.web下,里面有自动配置内嵌Servlet容器、自动配置http编码、自动配置上传文件的属性、配置SpringMVC等...
2018-05-23 10:08:30 2535
原创 开发颠覆者SpringBoot实战---------SpringBoot的基础学习
一、介绍随着动态语言的流行,常规的java开发S显得格外笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。为了解决这些问题,SpringBoot应运而生。它使用“习惯优化配置的理念”(项目中存在大量的配置,还内置一个习惯性配置,让你无需手动进行配置)来让项目快速运行起来,很容易创建一个独立运行、准生产级别的项目,可以不用或者需要很少的Spring配置。核心功能:...
2018-05-21 15:10:56 369
原创 开发颠覆者SpringBoot实战---------SpringMVC的基础学习
pom.xml文件 logback.xml日志文件&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;?xml version=&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;1.0&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quo
2018-05-16 17:14:43 350
原创 开发颠覆者SpringBoot实战---------Spring的基础学习
pom.xml文件&amp;amp;amp;amp;lt;project xmlns=&amp;amp;amp;quot;http://maven.apache.org/POM/4.0.0&amp;amp;amp;quot; xmlns:xsi=&amp;amp;amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;amp;amp;quot; xsi:schemaLoc
2018-05-16 11:41:10 296
原创 spring事务
一、使用声明式事务进行事务管理1、声明式事务: Spring的声明式事务管理在底层是建立在AOP的基础之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。声明式事务最大的优点就是不需要通过编程的方式管理事务,这样就不需要在业务逻辑代码中掺杂事务管理的代码,只需在配置文件中做相关的事务规则声明(或通过等价的基于标注的...
2018-05-04 09:37:40 4506
原创 JavaScript学习
1、输出使用 window.alert() 弹出警告框。使用 document.write() 方法将内容写到 HTML 文档中。使用 innerHTML 写入到 HTML 元素。使用 console.log() 写入到浏览器的控制台。2、对象JavaScript 中的所有事物都是对象:字符串、数字、数组、日期,等等。1)typeof 判断变量的数据类型,ECMA...
2018-05-02 17:10:48 210
原创 html、js小用法
一、Form实现Ajax提交表单function xxx() { var opts = { url : '/xxx.do', type : 'post', dataType : 'json', success : function(data) { } } $("#jvForm").aja...
2018-04-11 09:24:18 187
原创 SQL学习
一、变量1、局部变量变量可以在子程序(函数、存储过程、匿名块)中声明并使用,这些变量的作用范围是在BEGIN…END程序中。赋值语法1:setDECLARE var1, var2, var3 INT; SET var1 = 10, var2 = 20; SET var3 = var1 + var2; 赋值语法2:select intoBEGIN DECLA...
2018-03-16 14:31:02 506 1
原创 java算法基础——排序算法
一、排序算法以下代码的测试数据都是:int[] arr = new int[] {10, 5, 3, 8, 2, 4, 9, 1, 7, 6};1、冒泡排序(Bubble Sort)其核心思想是:对于一组需要排序的数字,依次将个位置上的数字与逐一与其之后的数字进行比较,如果他们的顺序错误就把他们交换过来。 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端。
2018-01-24 11:37:37 266
原创 java数据结构——6队列(Queue)
六、队列(Queue)在“队列”(Queue)这种数据结构中,数据项是先进先出(FIFO:first in first out)。队列的容量可以有限,也可以是无限的。1、基于数组的Queue实现一般情况下,对于Queue而言,最核心的操作是:插入队列(enqueue)、移出队列(dequeue)。因为在队列中,插入操作是插入到队列的最后,而移出操作是移出队列的头部元素。因此我们通常会使
2018-01-24 10:19:49 327
原创 java数据结构——5栈(Stack)
五、栈(Stack)栈(Stack)是一种后进先出的数据结构(LIFO:last in first out),只允许访问栈中的第一个数据项:即最后插入的数据项。移除这个数据项之后,才能看到第二个数据项,以此类推。往栈中存入数据称之为压栈(push),移除数据称之为弹栈(pop),此外通常还提供查看栈顶元素的peek方法,此方法可以拿到栈顶元素的值,但是并不会将其移除。java.util
2018-01-24 10:07:51 266
原创 java数据结构——4迭代器(iterator)
四、迭代器(iterator)如果我们想遍历数组,这很容易,因为可以用数组的下标跟踪所在的位置,然而在链表中,节点没有这样的下标,怎样才能提供给链表用户类似于数组下标的东西呢?这就是迭代器(iterator)的作用。我们知道添加到链表中的数据(data),都会包装成一个节点(node),节点之间通过引用保存了先后关系(pre、next)。但是由于在获取数据时(如getFirst),返回的直
2018-01-24 09:39:29 259
原创 java数据结构——3链表(LinkedList)
三、链表(LinkedList)下面将有一种新的数据存储结构,它可以解决上面的一些问题。这种数据存储结构就是链表。链表可能是继数组之后第二种使用最广泛的通用存储结构。单链表双端链表有序链表双向列表有迭代器的列表链表与数组一样,都作为数据的基本存储结构,但是在存储原理上二者是不同的。在数组中,数据是存储在一段连续的内存空间中,我们可以通过下标来访问数组中的元素;而在链表中,元
2018-01-23 14:36:04 229
原创 java数据结构——2基于数组的ArrayList
二、基于数组的ArrayListArrayList是Java中我们最常使用的List接口的实现类,其是内部就是通过维护一个无序数组来实现的。因此ArrayList具备无须数组拥有的所有优点和缺点:操作 ———————— 时间复杂度插入 ———————— O(1) 删除 ———————— O(n)查找 ————————
2018-01-23 14:28:56 226
原创 java数据结构——1数组
一、数组数组是应用最广泛的数据存储结构,它被植入到大部分编程语言中。由于数组十分易懂,所以它被用来介绍数据结构的起点。 数组分为2种:无序数组与有序数组。有序数组就是无序数组经过排序后结果。另外数组需要有以下这些要求:1. 我们通常假设数组中是没有空洞的。当我们想在数组查找某个元素时,当所有元素都查过了之后,依然没有查到,就说明数组中不包含此元素。那么我们如何知道所有的元素都已经查过了
2018-01-23 11:02:17 177
原创 jdk8新功能
一、接口之前的接口是个双刃剑,好处是面向抽象而不是面向具体编程,缺陷是,当需要修改接口时候,需要修改全部实现该接口的类,目前的java 8之前的集合框架没有foreach方法,通常能想到的解决办法是在JDK里给相关的接口添加新的方法及实现。然而,对于已经发布的版本,是没法在给接口添加新方法的同时不影响已有的实现。所以引进的默认方法。他们的目的是为了解决接口的修改与现有的实现不兼容的问题。...
2018-01-05 17:15:11 400
原创 java技术
转载:http://lj6684.iteye.com/blog/895010最近在网上查资料碰到好多没接触过的技术,先汇总在这里备用,以后慢慢吸收JNA JNI的替代品,调用方式比JNI更直接,不再需要JNI那层中间接口,几乎达到Java直接调用动态库SmallSQL 基于JDBC3.0转为Desktop应用设计的嵌入式数据库,纯Java,本地访问,不支持网络 但目前好像不太活跃,最新版本
2017-12-06 10:36:56 574
postman测试工具
2017-11-03
joda-time源码
2017-11-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人