java
文章平均质量分 69
Cdaimadada
这个作者很懒,什么都没留下…
展开
-
函数式编程
【前序】:在Java8中,内置了四个核心函数接口,它们存在是Lamda表达式出现的前提,Lamda表达式想重写函数式接口中的唯一方法。函数式接口与Lambda表达式之间的关系:lambda表达式相当于是一个行为,传入函数式接口中,进来实现各种操作,即行为参数化它们的接口内只有一个抽象方法,每一个函数式接口都有@FunctionalInterface注解。四种函数式接口分别为:Con...原创 2019-11-27 18:34:55 · 214 阅读 · 0 评论 -
java反射
原文地址:https://blog.csdn.net/sinat_38259539/article/details/71799078概述:java Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期间借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性以及方法。java反射机制提供的功能在运行时判断任意一个对象所属的...转载 2018-07-17 10:10:05 · 206 阅读 · 0 评论 -
重入锁、读写锁基础
概述:在java多线程当中,我们知道可以使用synchronized关键字来实现线程间的同步互斥工作,那么其实还有一个更加优秀的机制去完成这个“同步互斥”工作,他就是Lock对象,我们主要学习两种锁,重入锁(ReentrantLock)和读写锁(ReentrantReadWriteLock)。他们具有比synchronize更为强大的功能,并且有嗅探锁定、多路分支等功能。实现:首先最大的不同:sy...原创 2018-06-07 19:48:07 · 356 阅读 · 0 评论 -
Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析
今天发一篇"水文",可能很多读者都会表示不理解,不过我想把它作为并发序列文章中不可缺少的一块来介绍。本来以为花不了多少时间的,不过最终还是投入了挺多时间来完成这篇文章的。网上关于 HashMap 和 ConcurrentHashMap 的文章确实不少,不过缺斤少两的文章比较多,所以才想自己也写一篇,把细节说清楚说透,尤其像 Java8 中的 ConcurrentHashMap,大部分文章都说不清楚...转载 2018-06-07 09:58:02 · 233 阅读 · 0 评论 -
Java设计模式之单例模式
本文继续介绍23种设计模式系列之单例模式。概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统...转载 2018-05-18 10:41:22 · 188 阅读 · 0 评论 -
jvm类加载机制与使用MAT分析堆内存
jvm通过类加载器,将硬盘上编译好的class文件加载进jvm中。至于它是否可以运行,则有Execution Engine决定类加载器主要有虚拟机自带的加载器和用户自定义加载器。其中启动类加载器主要加载java中的根类,像Object、Scanner等,这些根类加载时,它们的类加载器为NULL;扩展类加载器主要加载java外部的类(这些外部类存储......jdk\jre\lib\ext中),系统...原创 2018-05-05 12:43:53 · 587 阅读 · 0 评论 -
jvm内存深层解析与性能调优
要更好的消化这篇文章,建议先看看https://blog.csdn.net/cdaimadada/article/details/79884414(java内存解析)这篇博文对于一般而言,java内存被划分为堆和栈(上一篇文章就是讲这个的),但是,实际上内存划分比这个复杂得多!概述对于java程序员来说,在虚拟机自动内存管理机制的帮助下,不在需要为每一个new操作去写配对的delete/free代...原创 2018-05-04 20:25:49 · 475 阅读 · 0 评论 -
hashMap并发导致死循环,使用ConcurrentHashmap解决问题
为何出现死循环简要说明HashMap闭环的详细原因cocurrentHashMap的底层机制 为何出现死循环简要说明 HashMap是非线程安全的,在并发场景中如果不保持足够的同步,就有可能在执行HashMap.get时进入死循环,将CPU的消耗到100%。 HashMap采用链表解决Hash冲突。因为是链表结构,那么就很容易形成闭合的链路,这样在循环的时候只要有线程对这个HashMap进行g...转载 2018-04-25 20:26:03 · 1852 阅读 · 0 评论 -
java常用IO流操作
博客原址: https://blog.csdn.net/MAGIC_JSS/article/details/514759231.基本概念IO:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中。2.IO流的分类图示:(主要IO流) 3.字节流(1).字节流基类1).InputStreamInputStream:字节输入流基...转载 2018-04-24 19:52:25 · 189 阅读 · 0 评论 -
接口回调
我们知道java中接口是不可以直接创建实例的,那么问题来了,假如我把一个接口声明为一个变量,那么我执行这个接口中的方法,接口没有实例它该怎么办呢?啊哈,这里自然又改出现java中的另一个特性---“多态”,这时java虚拟机自然会去找其子类,调用其子类中已经重载的该方法,这里就是接口回调的本质!!接口回调主要用于在程序内部进行数据的传输,程序内部数据传输也可以使用静态变量。根据不同的情形使用不同的...原创 2018-05-09 09:51:29 · 565 阅读 · 0 评论 -
java线程同步
锁:首先看下下面的代码:1.多个线程运行时,是交替运行的。22/23行的代码是为了使线程的交替运行表现得更加明显,也可以不要的。2.有两种同步的方法,public synchronized void add(String name){...},不要把这个当成了一种同步方法,正确理解为:执行这个方法的过程当中,当前对象被锁定(貌似很多企业面试的时候就考这个)。3.加锁之前,你会发现程序运行结果是:t...原创 2018-04-19 21:29:01 · 217 阅读 · 0 评论 -
java多线程安全问题
值得注意的一点是,QObject及其所有子类都不是线程安全的(但都是可重入的)。因此,你不能有两个线程同时访问一个QObject对象,除非这个对象的内部数据都已经很好地序列化(例如为每个数据访问加锁)。如果判断一个类是否线程安全的,看多个线程同时访问该类中的一个成员变量,是否需要加锁,可以说,没有线程安全的类,即多线程访问的时候,几乎都需要加锁下面看例子,package com.niuli.dev...原创 2018-04-19 09:24:46 · 173 阅读 · 0 评论 -
J2SE面试基础
最近在为自己实习准备,看了网上各种面试经验贴,也和身边的小伙伴一起参加了不少牛逼IT企业的面试,这篇文章就将面试遇到的一些比较常见的问题整理一下,给大家一些参考,也为自己整理整理。J2SE基础1.九种基本数据类型的大小,以及他们的封装类。Java的九种基本数据类型:byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。short:16位,最大数据存储量是65536,数据范围...转载 2018-04-11 18:18:04 · 208 阅读 · 0 评论 -
java内存运行机制讲解
本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在学习Ja...转载 2018-04-10 20:05:16 · 420 阅读 · 1 评论 -
java多线程and线程通信
一:线程与进程进程是程序的一次动态的执行过程。多进程操作系统能同时运行多个进程(程序),由于cpu具备分时机制,所以每个进程都能循环获得自己的cpu时间片段。由于cpu执行速度非常快,是的所有程序好像在同时运行一样。 线程是比进程更小的执行单位,线程是在进程的基础上经一部划分的。这些线程可以同时存在、同时运行。一个进程可能包括多个同时执行的线程。所谓线程(Thread)是指程序的运行流程,多线...原创 2018-01-19 10:06:39 · 315 阅读 · 0 评论 -
HashMap结合hashCode和equals方法的使用
package Map;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;/* * Map对象的最标准的输出方式 */public class MapDemo {public static void main(String[] args){Map<Perso...原创 2018-01-13 17:38:12 · 634 阅读 · 0 评论 -
Compareable接口的使用问题,以及对接口的深入了解
当一个类没有调用此类的方法,如何实现了这些功能的呢?先看下面这个代码:import java.util.*;public class TreeSetDemo {public static void main(String args[]){Set allSet = new TreeSet();allSet.add(new Person("张三",20));allSet.a原创 2018-01-12 20:58:40 · 1772 阅读 · 0 评论