自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 JVM常见的内存溢出

那些区域会发生内存溢出? 除了程序计数器,其他几块运行时数据区都有可能发生内存溢出。 堆溢出报错:java.lang.OutOfMemoryError: Java heap space 碰到这个问题,从两个方面入手: 1,判断是否是内存泄露。 通过内存分析工具对堆快照进行分析。如何分析请看本文的[Dump分析内存]章节,有详细的说明。 2,如果不是内存泄露。 检查堆参数:-Xmn -

2017-12-27 16:10:35 675

原创 JVM运行时数据区

整理一下JVM的知识。说到JVM,首先要提到的就是运行时数据区。 网上相当多的资料把运行时数据区和java内存模型弄混,这是错误的。 Java内存模型:是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。(参考JSR133规范) 运行时数据区是指:Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同数据区域。 这两个完全不是同一概

2017-12-27 16:09:46 226

原创 redis主从复制和集群搭建

Redis主从复制配置从服务器: 到redis安装目录$cp redis.conf redis-s1.conf更改redis-s1.conf, 进行下面改动port 6380slaveof 127.0.0.1 6379slaveof后面就是主服务器的地址和端口。 启动:$redis-server redis-s1.conf1174:S 24 Dec 15:57:59.619 * Connec

2017-12-24 19:43:37 244

原创 redis常用命令及客户端的使用

数据类型Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。Redis命令执行redis命令必须先要启动客户端。 #连接本地redis-cli#连接远程,加上Ip和密码参数。redis-cli -h 127.0.0.1 -p 6379 -a "password"Redis key说明可以用任何二进

2017-12-24 19:43:04 15141

转载 redis使用入门

windows下安装:1, https://github.com/dmajkic/redis/downloads 到这儿下载一个最新的windows安装包 2, 解压, 有32位和64位两个版本,选择一个,如放到d:/redis目录 3, 把d:/redis目录加到环境变量 4, 启动: cmd窗口: redis-server.exe redis.conf 然后窗口不要关闭, 不然服务就

2017-12-24 19:42:23 202

原创 Java8之方法引用

在Lambda表达式里,经常会有这样的代码artist -> artist.getName()就是lambda表达式里面调用了一个已存在的方法: getName() java8可以直接通过方法引用来简写lambda表达式中已经存在的方法,这种特性就叫方法引用。

2017-12-23 22:07:05 559

原创 Java8之Stream

Java8中的Stream是对集合对象功能的增强。 Stream API和Lambda表达式极大的提高对集合类操作编程效率和程序可读性。 内部迭代先看看外部迭代: 通过外部的迭代器来遍历集合。

2017-12-23 22:06:35 172

原创 Java8之函数式接口

在我的上一篇java8基础入门的文章中说了函数式接口的基本概念,这里介绍下JDK提供的一些重要的函数式接口:重要的函数式接口

2017-12-23 12:43:40 379

原创 Java8函数式编程入门

虽然最近java9都已经发布了。但是目前很多同学连java8都没有用到。 java8增加了很多有用的特性,对于大家的编程还是有很大帮助的。没有用过java8的同学还是非常有必要了解一下这些新特性的。 java8有个很重要的改变:增加了函数式编程(Lambda表达式)。 相比以前的Java新特性,lambda表达式对于从没接触函数式编程的Java程序员来说,并不是很好理解。因此我这儿特意一些分享

2017-12-22 14:29:51 905

原创 Java并发之构建异步任务

有个小朋友表示我写的并发文章,不够细,看了还是不太明白。 我的写作水平实在有限,泪奔。 后面我尽量写的详细简单,尽量多讲点例子。 异步对应的就是同步。 同步的程序大家写的非常的多,同步就是指程序对所有的操作都是串行的处理。一系列的任务A,B,C,D…必须一个一个的处理。 而异步则是可以并发同时处理多个任务。 举个栗子吧。 某个网站的用户提交注册需要以下几步: 1,调用用户服务,写入数

2017-12-22 14:29:18 3731

原创 Java并发之对象共享

Java并发里面有两个很关键的点: 一是,使用同步来避免多线程间同一时刻访问同样的数据。 二是,线程间的通信和数据的共享。 前面的文章已经讲过了同步的机制。 这篇文章会介绍数据的共享。主要从几个方面:

2017-12-21 15:42:17 320

原创 Java并发之执行器和线程池

执行器Executor用来管理Thread对象,简化并发编程 Executor的子接口是ExecutorService

2017-12-20 14:46:41 279

原创 Java并发之同步工具

BlockingQueue阻塞队列阻塞队列一般用于生产-消费模式:生产者把数据放入队列,消费者处理数据 put()方法插入数据,如果队列已满,阻塞,直到有可用空间; take()方法获取数据,如果队列为空,阻塞,直到有可用元素; offer(),poll()也是插入获取元素,和put,take不同的是,offer,poll不会阻塞,操作失败时,返回失败状态; offer,poll方法,支持定

2017-12-20 14:45:22 153

原创 Java并发之死锁

简单聊一下死锁。 当一个线程永远的持有一个锁,并且其他线程都尝试获得这个锁,就会发生死锁。 如果发生死锁,通常JVM没有办法自动恢复,只能重启。对线上系统来说,这是灾难性的。死锁的发生场景、例子1,最简单的例子: 线程A持有锁1并尝试获得锁2,线程B占有锁2并尝试获得锁1。两个线程将会永远的等待下去。 2,多个线程,持有锁的同时,尝试获得对方的锁,形成一个复杂的环状依赖。这些线程都将无限的

2017-12-19 16:20:41 197

原创 Java并发之线程同步

Synchronized关键字1,用于方法上 2,用于代码块上: 必须通过一个对象引用作为参数。只有一个线程可以访问那个对象的synchronized代码(代码 块或方法)。通常,我们将使用this关键字引用执行该方法的对象。 synchronized (this) { }synchronized()保护代码块时,如果使用对象作为参数,而不是this JVM可以保证只有一个线程可以访问那个对

2017-12-19 16:18:48 186

原创 Java并发之线程管理

最近有朋友问到Java并发 我觉得有必要对并发的知识做个总结 从这篇开始,我会整理一系列的并发相关的

2017-12-19 15:43:21 241

原创 Java集合基础篇(4)-HashMap基本用法

HashMap实现Map接口, 以键/值对的形式存储数据。根据Hash算法来计划key-value的位置。 可以实现快速的存取。

2017-06-28 21:34:33 226

原创 Java集合基础篇(3)-HashSet基本用法

HashSet实现Set接口。 Set是一个不包含重复元素的集合接口, 集合中的元素不按特定的方式排序。 实现Set接口的类: HashSet用法:

2017-06-28 21:19:54 399

原创 Java集合基础篇(2)-ArrayList基本用法

ArrayList实现List接口。 List是一组有序的对象的集合,其大小能按需变化,允许出现重复的元素。实现List接口的类: 类 说明 使用场景 ArrayList 相当于一个大小可变的动态数组 快速随机访问元素 LinkedList List的双向列表实现, 高效的插入和删除 快速插入,删除元素 Vector 不建议使用 Stack

2017-06-22 23:49:06 202

原创 Java集合基础篇(1)-基本介绍

本章介绍最基本的概念,和最常用的集合接口/类。为什么要有Java集合? 在开发过程中, 当我们需要对一组数据进行管理的时候, 我们需要有一种数据结构来保存这一组对象. 如果没有集合, 我们可以用数组来实现. 但用数组来实现, 问题在于, 数组一旦定义, 其元素个数是固定, 不能动态增长。 还有,我要实现稍微复杂点的算法, 使用数组也是很难实现的。 于是就有了集合。 Java提供了一套完整强

2017-06-21 16:11:56 193

空空如也

空空如也

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

TA关注的人

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