Java
无香菜不欢
多读书,少说话
到点睡觉,按时吃饭。
展开
-
HashMap遍历的三种方法
//最常规的一种遍历方法,最常规就是最常用的,虽然不复杂,但很重要,这是我们最熟悉的,就不多说了!! public static void work(Map<String, Student> map) { Collection<Student> c = map.values(); Iterator it = c.iterator(); for (; it.hasNext();) { System....原创 2020-06-12 10:16:32 · 300 阅读 · 0 评论 -
Java 正则表达式
Java 正则表达式正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。正则表达式实例一个字符串其实就是一个简单的正则表达式,例如Hello World正则表达式匹配 "Hello World" 字符串。.(点号)也是一个正则表达式,它匹配任何一个字符如:"a" 或 "1"。下表列出了一...转载 2019-11-07 20:38:36 · 89 阅读 · 0 评论 -
JSON字符串和java对象的互转【json-lib】
在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML、JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好,下面先看下JSON的格式,JSON可以有两种格式,一种是对象格式的,另一种是数组对象,{"name":"JSON","address":"北京市西城区","age":25}//JSON的对象...原创 2019-11-05 13:07:06 · 69 阅读 · 0 评论 -
面向对象之多态(向上转型与向下转型)
简单的理解多态多态,简而言之就是同一个行为具有多个不同表现形式或形态的能力。比如说,有一杯水,我不知道它是温的、冰的还是烫的,但是我一摸我就知道了。我摸水杯这个动作,对于不同温度的水,就会得到不同的结果。这就是多态。public class Water { public void showTem(){ System.out.println("我的温度是: 0度")...转载 2019-11-04 20:22:30 · 403 阅读 · 2 评论 -
悲观锁、乐观锁、可重入锁、自旋锁、偏向锁、轻量/重量级锁、读写锁、各种锁及其Java实现
〇、synchronized与LockJava中有两种加锁的方式:一种是用synchronized关键字,另一种是用Lock接口的实现类。形象地说,synchronized关键字是自动档,可以满足一切日常驾驶需求。但是如果你想要玩漂移或者各种骚操作,就需要手动档了——各种Lock的实现类。所以如果你只是想要简单的加个锁,对性能也没什么特别的要求,用synchronized关键字就足够了...转载 2019-11-03 21:11:52 · 120 阅读 · 0 评论 -
乐观锁和悲观锁
悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思...原创 2019-11-03 19:39:53 · 109 阅读 · 0 评论 -
数据库事务隔离级别-- 脏读、幻读、不可重复读(清晰解释)
一、数据库事务隔离级别数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。√: 可能出现×: 不会出现 脏读 不可重复读 幻读 Read uncommitted √ ...转载 2019-10-27 00:10:43 · 269 阅读 · 0 评论 -
B+tree实现的技术细节
一个m阶的B树具有如下几个特征:1.根结点至少有两个子女。2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m3.每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m4.所有的叶子结点都位于同一层。5.每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域分划。一个m阶的B+树具有如下...原创 2019-10-25 15:52:24 · 302 阅读 · 0 评论 -
String,StringBuffer和StringBuild 区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)String1、Stirng是对象不是基本数据类型2、String是final类,不能被继承。是不可变对象,一旦创建,就不能修改它的值。3、对于已经存在的Stirng对象,修改它的值,就是重新创建一个对象,然后将新值赋予这个对象StringBuf...原创 2019-10-24 23:07:41 · 787 阅读 · 3 评论 -
JVM 内存管理
1)JVM 内存划分:答:方法区(线程共享):各个线程共享的一个区域,用于存储虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。虽然 Java 虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却又一个别名叫做 Non-Heap(非堆),目的应该是与 Java 堆区分开来。 运行时常量池:是方法区的一部分,用于存放编译器生成的各种字面量和符号引用。 堆内存...转载 2019-10-22 23:29:21 · 82 阅读 · 0 评论 -
JVM 基础知识
1)Java 是如何实现跨平台的?注意:跨平台的是 Java 程序,而不是 JVM。JVM 是用 C/C++ 开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的 JVM答:我们编写的 Java 源码,编译后会生成一种 .class 文件,称为字节码文件。Java 虚拟机(JVM)就是负责将字节码文件翻译成特定平台下的机器码然后运行,也就是说,只要在不同平台上安装对应的 JV...转载 2019-10-22 22:40:18 · 108 阅读 · 0 评论 -
Java并发基础
并行与并发并行性是指两个或多个事件在同一时刻发生。而并发性是指连个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机环境下(一个处理器),每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。例如,在1秒钟时间内,0-15ms程序A运行;15-30ms程序B运行;30-45ms程序C运行;45-60ms程序D运行,因此...转载 2019-10-14 01:57:43 · 105 阅读 · 0 评论 -
Java集合入门总结
集合框架:Java中的集合框架大类可分为Collection和Map;两者的区别:1、Collection是单列集合;Map是双列集合2、Collection中只有Set系列要求元素唯一;Map中键需要唯一,值可以重复3、Collection的数据结构是针对元素的;Map的数据结构是针对键的。泛型:在说两大集合体系之前先说说泛型,因为在后面的集合中都会用到; 所谓的泛型...转载 2019-10-12 01:15:01 · 188 阅读 · 4 评论 -
String类详解
字符串的分类其实说起来会有些别扭,为什么字符串会有分类这种东西。了解的朋友可能会知道字符串的操作除了String,还有StringBuffer和StringBuilder(区别我们在下面来说)不可变的字符串String是一个奇葩。String对象不可变,也就是说当对象创建完毕之后,该对象的内容(字符序列)是不允许改变的,如果内容改变则会创建一个新的String对象,返回到原地址中。...原创 2019-10-11 16:33:09 · 117 阅读 · 0 评论 -
JAVA常考面试题
1、在java中守护线程和本地线程区别?java中的线程分为两种:守护线程(Daemon)和用户线程(User)。任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon(bool on);true则把该线程设置为守护线程,反之则为用户线程。Thread.setDaemon()必须在Thread.start()之前调用,否则运行时会抛出异常。两者的区别:唯一的...原创 2019-09-03 10:28:40 · 84 阅读 · 0 评论