Java基础
海涛czwx
努力工作,努力生活
展开
-
Java Map 遍历
下面总结记录了Java遍历Map的四种方式,有需要的yuaner们可以参考哟方式一:使用map.entrySet()一次拿到所有key和value的集合,在健和值都需要的时候使用它就对了,听说是最可取的遍历方式原创 2017-09-27 11:05:11 · 305 阅读 · 0 评论 -
浅谈TCP三次握手和四次挥手
三次握手我们假设A和B是通信的双方。我理解的握手实际上就是通信,发一次信息就是进行一次握手。第一次握手: A给B打电话说,你可以听到我说话吗? 第二次握手: B收到了A的信息,然后对A说: 我可以听得到你说话啊,你能听得到我说话吗? 第三次握手: A收到了B的信息,然后说可以的,我要给你发信息啦! 在三次握手之后,A和B都能确定这么一件事: 我说的话,你能听到; 你说的话,我也...原创 2019-03-13 17:06:33 · 221 阅读 · 0 评论 -
java多态
原创 2018-12-07 11:09:11 · 218 阅读 · 1 评论 -
intellij idea 断点调试快捷键
原创 2018-11-24 10:48:15 · 417 阅读 · 0 评论 -
volatile 关键字 解析
对于volatile这个关键字,相信很多朋友都听说过,甚至使用过,这个关键字虽然字面上理解起来比较简单,但是要用好起来却不是一件容易的事。这篇文章将从多个方面来讲解volatile,让你对它更加理解。计算机中为什么会出现线程不安全的问题volatile既然是与线程安全有关的问题,那我们先来了解一下计算机在处理数据的过程中为什么会出现线程不安全的问题。大家都知道,计算机在执行程序时,每条...原创 2018-10-26 10:34:42 · 191 阅读 · 0 评论 -
String不可变
众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。...原创 2018-09-26 16:15:02 · 217 阅读 · 0 评论 -
分布式锁 -- 基于数据库实现
基于数据库来做分布式锁的话,通常有两种做法:基于数据库的乐观锁 基于数据库的悲观锁乐观锁:乐观锁机制其实就是在数据库表中引入一个版本号(version)字段来实现的。当我们要从数据库中读取数据的时候,同时把这个version字段也读出来,如果要对读出来的数据进行更新后写回数据库,则需要将version加1,同时将新的数据与新的version更新到数据表中,且必须在更新的时候同时检查目前...原创 2018-09-26 16:13:28 · 767 阅读 · 0 评论 -
分布式锁 -- 基于redis实现
基于Redis实现的锁机制,主要是依赖redis自身的原子操作,例如:SET user_key user_value NX PX 100redis从2.6.12版本开始,SET命令才支持这些参数:NX:只在在键不存在时,才对键进行设置操作,SET key value NX 效果等同于 SETNX key value PX millisecond:设置键的过期时间为millisecon...原创 2018-09-26 15:42:09 · 260 阅读 · 0 评论 -
分布式锁 -- 基于zookeeper实现
其实基于ZooKeeper,就是使用它的临时有序节点来实现的分布式锁。原理就是:当某客户端要进行逻辑的加锁时,就在zookeeper上的某个指定节点的目录下,去生成一个唯一的临时有序节点, 然后判断自己是否是这些有序节点中序号最小的一个,如果是,则算是获取了锁。如果不是,则说明没有获取到锁,那么就需要在序列中找到比自己小的那个节点,并对其调用exist()方法,对其注册事件监听,当监听到这个节...原创 2018-09-26 15:40:11 · 232 阅读 · 0 评论 -
JVM入门必看——JVM结构
转自:https://www.cnblogs.com/xuningchuanblogs/p/7688332.html转载 2018-10-01 10:29:00 · 249 阅读 · 0 评论 -
常用的正则表达式大全(数字、字符、固定格式)
1.数字相关的正则表达式数字:^[0-9]*$ n位定长的数字:^\d{n}$ m-n位之间的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 正数、负数、和小数:^(\-|\+)?\...原创 2018-09-15 17:48:32 · 47525 阅读 · 0 评论 -
web.xml配置模板
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns原创 2018-08-16 15:29:30 · 2293 阅读 · 0 评论 -
浅谈Java异常
如图可以看出所有的异常跟错误都继承自Throwable类,也就是说所有的异常都是一个对象。(Throwable)异常从大体来分为两块:1、error(错误) : 是指程序无法处理的错误,表示应用程序运行时出现的重大错误。例如jvm运行时出现的内存溢出(OutOfMemoryError)以及Socket编程时出现的端口占用等程序无法处理的错误。注:异常和错误的区别:异常能被程序本身可以处理,错误是无...原创 2018-02-27 11:23:00 · 194 阅读 · 0 评论 -
Java遍历JSON
Java遍历JSON用Iterator迭代器遍历取值 : public static void main(String[] args) { String s = "{'A':{'a':'1' ,'aa':'11'},'B':{'b':'2' ,'bb':'22'}}" ; JSONObject jsonObject1=JSONObject.fromObject(原创 2017-12-13 15:05:22 · 18483 阅读 · 0 评论 -
集合中存储的是对象的值还是对象的引用
如果是基本数据类型(基本数据类型对象),集合(List / LinkList / Map)存的是值,如果存的是对象,则集合存的是对象的引用,如下代码:import java.util.*;public class Main { public static void main(String[] args) { List list1 = new ArrayLis...原创 2019-04-06 17:41:18 · 2623 阅读 · 1 评论