自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(206)
  • 资源 (8)
  • 收藏
  • 关注

原创 CountDownLatch/CyclicBarrier/Semaphore的用法

1 CountDownLatchCountDownLatch 让一些线程阻塞直到另一些线程完成一系列操作后才被唤醒。CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,调用线程会被阻塞,其它线程调用countDown方法会将计数器减1(调用countDown方法的线程不会阻塞),当计数器的值变为零时,因调用await方法被阻塞的线程会被唤醒,继续执行。public class CountDownLatchTest{ public static void main(

2020-12-05 20:37:47 168

原创 公平锁/非公平锁/可重入锁/递归锁/自旋锁/独占锁/共享锁/互斥锁

1 公平锁/非公平锁公平锁: 是指多个线程按照申请锁的顺序来获取锁。在并发环境中,每个线程在获取锁时会先查看此锁维护的等待队列,如果为空,或者当前线程是等待队列的第一个,就占有锁,否则就会加入到等待队列中,以后会按照FIFO的规则从队列中取出并占有锁。非公平锁: 是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。在高并发的情况下,有可能会造成优先级反转或饥饿现象。并发包中ReentrantLock的创建可以指定构造函数的boolean类型来得到公平锁或非公平

2020-11-30 21:31:42 170

原创 ArrayList/HashSet/HashMap 线程不安全问题

1 ArrayList线程不安全List<String> list=new ArrayList<>();for(int i=1;i<=50;i++){ new Thread(()->{ list.add(UUID.randomUUID().toString().substring(0,8)); System.out.println(list); },String.valueOf(i)).start();}// 抛出异

2020-11-07 18:03:13 253

原创 给定一个字符串, 找出其中不含有重复字符的最长子串的长度

给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,答案必须是子串的长度,“pwke” 是一个子序列, 不是子串。class Solutio

2020-11-07 15:54:03 2447

原创 两数相加

给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807class Solution { public L...

2020-11-03 14:31:53 94

原创 NoSQL系统的分类

什么是NoSQL系统?采用最终一致性的数据库系统,统称为NoSQL(Not only SQL)系统。根据数据模型的不同,NoSQL系统又分为以下几类:基于键值对的(Memcached,Redis)基于列存储的(Bigtable,Apache HBase,Apache Cassandra)基于文档的(MongoDB,CouchDB)基于图的(Neo4j,OrientDB)...

2020-11-03 10:11:59 264

原创 给定一个整数数组 nums 和一个目标值 target,在数组中找出和为目标值的那两个整数,并返回他们的数组下标

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]class Solution { public int[] twoSum(int[] nums, int target) {

2020-10-31 20:44:48 197

原创 对Java中volatile关键字的一点理解

1 volatile是Java虚拟机提供的轻量级的同步机制(保证可见性,不保证原子性,禁止指令重排序)保证可见性volatile保证可见性Demo(可测试volatile删除与添加的运行差异):public class VisibleTest { public static void main(String[] args) { VisibleData data = new VisibleData(); new Thread(() -> {

2020-10-31 17:28:08 155 1

原创 并发和并行的区别

并发同一时间段,多个任务都在执行(单位时间内不一定同时执行)并行单位时间内,多个任务同时执行

2020-10-18 15:12:29 78

原创 Java中HashMap遍历的七种方法

HashMap 遍历从大的方向来说,可分为4类:迭代器(Iterator)方式遍历For Each 方式遍历Lambda 表达式遍历(JDK 1.8+)Streams API 遍历(JDK 1.8+)但每种类型下又有不同的实现方式,因此根据具体的遍历方式又可以分为以下7种:使用迭代器(Iterator)EntrySet 的方式进行遍历// 创建并赋值 HashMapMap<Integer, String> map = new HashMap();map.put(1, "

2020-10-18 11:09:10 524 1

原创 JDK 动态代理和 CGLIB 动态代理对比

1 JDK 动态代理只能只能代理实现了接口的类,而 CGLIB 可以代理未实现任何接口的类。 另外, CGLIB 动态代理是通过生成一个被代理类的子类来拦截被代理类的方法调用,因此不能代理声明为 final 类型的类和方法。2 就二者的效率来说,大部分情况都是 JDK 动态代理更优秀,随着 JDK 版本的升级,这个优势更加明显...

2020-10-17 17:29:14 140

原创 设计模式的七大原则

单一职责原则对类来说,一个类应该只负责一项职责接口隔离原则一个类对另一个类的依赖应该建立在最小的接口上依赖倒转原则a 高层模块不应该依赖低层模块,两者应该依赖其抽象b 抽象不应该依赖细节,细节应该依赖抽象c 依赖倒转的中心思想是面向接口编程d 抽象指的是接口或抽象类,细节就是具体的实现类依赖关系传递的三种方式: 接口传递,构造方法传递,setter方式传递4...

2019-12-22 18:35:34 103

原创 String 类的常用方法都有那些?

indexOf() 返回指定字符的索引charAt() 返回指定索引处的字符replace() 字符串替换trim() 去除字符串两端的空白split() 分割字符串, 返回分割后的字符串数组getBytes() 返回字符串的byte类型数组substring() 截取字符串equals() 字符串比较length() 返回字符串的长度toLowerCas...

2019-11-13 21:10:10 941

原创 Redis 优势

读写性能极高– Redis能读的速度是110000次/s,写的速度是81000次/s 。 数据类型丰富 – Redis支持Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子性 – Redis的所有操作都是原子性的,要么成功执行,要么失败完全不执行。 支持 publish/subscribe, 通知,...

2019-11-04 22:19:56 154

原创 Redis 简介

Redis(Remote Dictionary Server)是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型...

2019-11-04 22:13:03 140

原创 java 中操作字符串的类有哪些?它们之间有什么区别?

主要有三种: String、StringBuffer、StringBuilder1) String : final修饰,对string类型字符串的修改操作都会生成新的对象,即对象不可变。StringBuffer和StringBuilder是对象可变的。2) StringBuffer : 对字符串的方操作都加了synchronized,是线程安全的。StringBuilder 不是...

2019-11-04 21:37:28 587

原创 Math.round(-1.5) 等于多少?

首先, 答案是-1.Math.round()方法四舍五入的原理是: 在入参的基础上加0.5,然后向下取整.所以,对于Math.round(-1.5)=Math.round(-1.5+0.5)=-1对于正数也一样,如 Math.round(3.4)=Math.round(3.4+0.5)=3...

2019-11-03 19:00:38 1224

原创 冒泡排序 选择排序 插入排序

冒泡排序:private static void bubbleSort( int[] array ) { int temp; int len = array.length; for( int i = 0; i < len - 1; i++ ) { for( int j = 0; j <...

2019-06-23 14:58:41 137

原创 Java知识点汇总

ThreadLocalSynchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突。但是由于在每个线程中都创建了副本,所以要考虑它对资源的消耗,比如内存的占用会比不使用ThreadLocal要大。ThreadLo...

2019-06-09 21:49:15 103

原创 Spring MVC 之HelloWorld

文件路径如下 :1. pom.xml配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xs...

2019-05-27 21:39:22 126

原创 Spring中bean的作用域

Spring的作用域主要有四种:1)单例 (singleton):在整个应用中,只创建bean的一个实例。2)原型 (prototype):每次注入或者通过spring上下文获取的时候都会创建一个新的bean实例。3)会话 (session):在web应用中,为每个会话创建一个bean实例。4)请求 (request):在web应用中,为每个请求创建一个bean实例。...

2019-05-19 10:36:36 114

原创 Java 之单例模式

单例模式,又称单件模式。单例模式的目的就是为了保证一个类只有一个实例。下面我们来写一个简单的单例模式的code吧public class Singleton{ private static Singleton myInstance; private Singleton() { } public static Singleton getInstance() { if...

2019-03-24 19:58:50 130

原创 MySQL为表和字段取别名 (AS关键字)

1 为表取别名mysql&gt; select * from students;+----+--------+-------+------+------+| id | number | name | sex | age |+----+--------+-------+------+------+| 1 | 1111 | LiLy | W | 12 || 2...

2019-02-23 22:27:22 4106

原创 MySQL 合并查询结果(Union 关键字)

利用 UNION关键字,可以将多个select语句的结果组合成单个结果集。mysql&gt; select * from students;+----+--------+-------+------+------+| id | number | name | sex | age |+----+--------+-------+------+------+| 1 | 111...

2019-02-23 21:46:33 1853

原创 子查询

子查询:一个查询语句嵌套在另外一个查询语句的内部的查询。1 带ANY , SOME关键字的子查询ANY和SOME是同义词。满足与子句中的查询结果比较任意一个为true即可。mysql&gt; select * from students;+----+--------+-------+------+------+| id | number | name | sex | age ...

2019-01-23 22:40:21 102

原创 MySql 连接查询

连接包括内连接和外连接。通过连接运算符可以实现多个表查询。1 内连接查询mysql&gt; select * from students;+----+--------+-------+------+------+| id | number | name | sex | age |+----+--------+-------+------+------+| 1 | ...

2019-01-19 17:10:50 181

原创 使用聚合函数查询

1 COUNT() 函数count函数如果指定列,如count(province),会忽略NULL的值 ,如果不指定列,使用count(*),所有记录都不会忽略。mysql&gt; select * from fruits;+------+------+------------+---------+----------+| f_id | s_id | f_name | f_p...

2019-01-12 12:04:22 642

原创 MySQL 查询数据

1 查询所有字段1.1 使用*通配符查询所有字段SELECT * FROM 表名1.2 在SELECT语句中指定所有字段SELECT id,name from users;2 查询指定字段2.1 查询单个字段SELECT 列名 FROM 表名;2.2 查询多个字段SELECT 列名1,列名2,列名3 ...列名n from 表名2.3 查询指定记录SEL...

2019-01-05 11:29:30 136

原创 MySql CONV,BENCHMARK, CONVERT

1 不同进制的数字转换下例将16进制的a转化为2进制的1010  mysql&gt; SELECT CONV('a',16,2);+----------------+| CONV('a',16,2) |+----------------+| 1010           |+----------------+1 row in set (0.01 sec)2 重复...

2019-01-03 21:13:43 150

原创 如何实现字符串中的括号匹配

import java.util.ArrayList;import java.util.List;/** * @Description: TODO * @author: Jocean &lt;[email protected]&gt; * @date Oct 28, 2018 8:56:36 PM */public class BracketMatch{...

2018-10-28 22:15:11 1071

原创 Java事件处理

1 AWT事件处理机制概要:1)监听器对象是一个实现了特定监听器接口的类的实例。2)事件源是一个能够注册监听器对象并发送事件对象的对象。3)当事件发生时,事件源将事件对象传递给所有注册的监听器。4)监听器对象将利用事件对象中的信息决定如何对事件作出响应。...

2018-04-15 12:49:58 255

原创 Java异常和日志

1 程序在运行过程中,总会出现这样那样的错误,在遇到异常情况的时候,至少要做到以下三点:1) 向用户通告错误2) 保存所有的工作结果3) 允许用户以妥善的形式退出程序2 Java异常对象都派生自Throwable,在下一层分为Error和ExceptionError类描述了Java运行时系统内部错误和资源耗尽错误。Exception又分为RuntimeException和IOException。R...

2018-04-15 11:13:53 610

原创 ArrayList类的实现

package com.dhy.test;import java.util.Iterator;/** * @Description: TODO * @author: Jocean &lt;[email protected]&gt; * @date Feb 11, 2018 8:51:20 PM */public class MyArrayList&lt;String&gt; implement...

2018-02-11 22:20:26 316

原创 Java 正则表达式

正则表达式是一个强大的字符串处理工具,可以对字符串查找,提取,分割和替换。String类里有几个特殊的处理方法:boolean matches (String regex): 判断该字符串是否匹配指定的正则表达式regexString replaceAll(String regex,String replacement):将该字符串中所有匹配regex的子字符串替换成replace

2018-01-21 19:50:23 517

原创 Java垃圾回收机制特性

1 垃圾回收机制只负责回收堆内存中的对象,不会回收任何物理资源(如数据库连接,网络IO等) 2 程序无法精确控制垃圾回收的运行,垃圾回收会在合适的时候进行。 3 在垃圾回收机制回收任何对象之前,总会先调用它的finalize()方法,该方法可能使对象重新复活,从而导致垃圾回收机制取消回收。

2017-12-24 11:19:14 220

原创 模版模式的规则

1 抽象父类可以只定义需要使用的某些方法,把不能实现的部分抽象成抽象方法留给子类去实现 2 父类中可能包含其他的调用方法,这些调用方法可以由父类实现,也可以由子类实现。

2017-11-27 21:15:22 220

原创 MySql REGEXP运算符匹配字符串

1 ^ 匹配以该字符后面的字符开头的字符串 举个例子: REGEXP ‘^x’ 表示匹配以x开头的字符 2 $匹配以该字符前面的字符结尾的字符串 举个例子: REGEXP ‘y$’ 表示匹配以y结尾的字符 3 .匹配任意一个字符 4 […]匹配在方括号中的任意一个字符。 如: [1-9] 匹配1到9的数字, [abc]匹配其中任意一个 5 *匹配零个或多个在它前面的字符 如:

2017-11-05 14:42:46 2145

原创 Mac怎样启动mysql

1.在系统偏好设置中找打MySQL 2 .打开MySQL,点击Start MySQL Server 3 打开命令行,输入PATH路径,此为mysql安装的bin目录,然后输入 mysql -u root -p,输入密码后,即可登录mysql

2017-11-05 10:44:35 1330

原创 解决Java抛出的异常,log中不含具体的堆栈信息

最近,在做项目的时候,遇到一个问题,抛了exception异常,但是定位到log的时候却发现log信息打印不全,并不能根据异常定位到具体的位置。解决方法:配置JVM参数 -XX:-OmitStackTraceInFastThrow

2017-08-30 23:33:46 2670

原创 Java中a=a+3与a+=3的区别

(1)byte a=2; a=a+3; 这样写是错误的,因为3是int类型,a+3也是int类型 int类型赋值给byte是不正确的。 (2)byte a=2; a+=3; 这个是正确的。

2017-03-12 17:40:03 4284

hibernate hellowrold入门级代码

hibernate学习入门代码,可参考学习网址:http://blog.csdn.net/u012868077/article/details/52713238

2016-09-30

用struts2实现简单登录

用struts2实现了简单的登录,其中包含了struts2的基本配置,可参考此配置学习开发。

2016-08-20

Oracle JRockit权威指南

JRockit是目前最流行的三大商业虚拟机之一,是了解现代高性能虚拟机的很好的参考资料。

2016-01-12

Java虚拟机规范

学习Java不紧要了解基本的语法、API和框架,尤其要深入理解Java虚拟机运行的原理。本书对Java虚拟机的原理进行了深入分析,可以从中学到很多,并提升自己对Java的理解。

2016-01-12

ganglia(集群状态监控)

集群监控软件,用于监控分布式集群的各个节点的状态

2015-11-19

zlib-1.2.8

zlib,安装rrdtool时需要安装,应该是rrdtool在linux系统中的依赖包

2015-11-07

Hadoop权威指南

一本介绍Hadoop的权威书籍。 全书共14章,分别介绍了MapReduce,Hadoop分布式文件系统及I/O,Pig,Habse,ZooKeeper等,值得一读。

2014-04-10

空空如也

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

TA关注的人

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