![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java语言
中琦2513
天道酬勤
展开
-
同步异步+阻塞非阻塞-四述
常规的误区假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数据,然后使用适合的视图展示详情数据。如果网速很慢,代码发起一个HTTP请求后,就卡住不动了,直到十几秒后才拿到HTTP响应,然后继续往下执行。这个时候你问别人,刚刚代码发起的这个请求是不是一个同步请求,对方一定回答是。这是对的,它确实是。但你要问它为什么是呢?对方一定是这样回答的,“因为发起请求后,代...原创 2020-01-31 23:25:15 · 946 阅读 · 0 评论 -
四百多篇博客专栏归类让你直接晋级老手
IDE开发工具(4篇):https://blog.csdn.net/java_wxid/category_8600829.htmlJava基础(17篇):https://blog.csdn.net/java_wxid/category_8600390.htmlMySQL(15篇):https://blog.csdn.net/java_wxid/category_8600406.htmlJDB...原创 2019-11-25 11:06:50 · 1397 阅读 · 2 评论 -
JVM内存结构 VS Java内存模型 VS Java对象模型
Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模型和Java对象模型,这就是三个截然不同的概念,但是很多人容易弄混。可以这样说,很多高级开发甚至都搞不不清楚JVM内存结构、Java内存模型和Java对象模型这三者的概念及其间的区别。甚至我见过有些面试官自...原创 2019-10-21 15:14:21 · 869 阅读 · 0 评论 -
JAVA最新编程50题
本文对50道经典的java程序题进行详细解说,对于初学者可以跳过一些逻辑性太强的题目,比如第一题用到了方法的递归,初学者可能不理解,最好先看那些有if、for、while可以简单解决的程序题!但是,对于比较深入学习过的同学,还是希望可以一口气就看完,这是比较全面思维锻炼!题目:https://www.cnblogs.com/VellBibi/p/3500671.html【程序1...原创 2018-03-31 16:46:58 · 109041 阅读 · 38 评论 -
JVM详细讲解汇总
Java虚拟机详解:http://www.importnew.com/17770.htmljvm系列(一):java类的加载机制https://www.cnblogs.com/ityouknow/p/5603287.htmljvm系列(二):JVM内存结构https://www.cnblogs.com/ityouknow/p/5610232.htmljvm系列(三):java GC算法 垃圾收集器...原创 2018-04-17 18:24:32 · 44065 阅读 · 0 评论 -
同步异步+阻塞非阻塞-一述
前言在实际的开发中,我们经常会听到同步,异步,阻塞,非阻塞这些编程概念,每次遇到的时候都会蒙圈,然后就各种查网上似是而非的资料,结果越查越迷糊,大部分文章都千篇一律,没有说到本质上的区别,所以下次再碰到这些概念,印象还是比较模糊,尤其是在一些场景下同步与阻塞,异步与非阻塞感觉没啥区别,但其实这四个术语描述的事物还真不是一回事。下面我们来慢慢探讨他们之间的区别与联系,在这之前,我们还会经常看到下面的...原创 2018-07-11 08:33:02 · 37858 阅读 · 0 评论 -
同步异步+阻塞非阻塞-二述
一、IO概述IO操作其实可以分成两个步骤,请求IO操作和执行IO操作。一般的IO调用过程是这样的:发起IO操作的请求,执行IO操作,得到IO操作的结果,将结果返回给IO操作请求。同步和异步同步和异步是一种通信机制,涉及到调用方和被调用方,关注的是IO操作的执行过程及结果的返回方式,不同点在于双方在这两个方面的行为方式。如果调用方需要保持等待直到IO操作完成进而通过返回获得结果,则是同...原创 2018-07-11 08:35:22 · 37782 阅读 · 0 评论 -
NIO学习笔记
NIO 从 JDK1.4 才开始有:JDK1.7 推出 NIO 2.0在JDK1.4推出Java NIO之前,基于Java的所有Socket通信都采用了同步阻塞模式(BIO),这种一请求一应答的通信模型简化了上层的应用开发,但是在性能和可靠性方面却存在着巨大的瓶颈因此,在很长一段时间里,大型的高性能服务端应用程序都采用C或者C++语言开发,因为它们可以直接使用操作系统提供的异步I/O或者AIO能...原创 2018-07-11 08:40:02 · 37911 阅读 · 0 评论 -
同步异步+阻塞非阻塞-三述
在IT圈混饭吃,不管你用什么编程语言、从事前端还是后端,阻塞、非阻塞、异步、同步这些概念,都需要清晰地掌握,否则,怎么与面试官谈笑风生(chui niu pi)?但是,掌握这些概念又不是非常容易,尤其对非科班出身的,更加困难。本文试图给出一个清晰简明但不失深刻的介绍,希望对大家有所帮助。1、从I/O说起这些概念之所以容易令人迷惑,在于很多人对I/O就没有清晰准确的理解,后面的理解自然不可...原创 2018-11-27 14:56:19 · 24201 阅读 · 0 评论 -
设计模式
1、基本原则1、单一职责原则 就一个类而言,应该仅有一个引起它变化的原因(如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多一个的职责,就应该考虑类的职责分离) 2、开放-封闭原则 对扩展是开放的。对更改是关闭的。简单来说,就是可以增加,不可以修改 3、依赖倒转原则 抽象不应该依赖细节,细节应该依赖于抽象 ...原创 2018-11-27 15:25:08 · 24066 阅读 · 0 评论 -
GOF设计模式(概念、原则、场景、优点、缺点、应用)
设计模式是软件大师们根据多年来的软件开发经验,对软件开发领域包括合理复用、提高健壮性、减少BUG等各方面作的抽象总结,不同的设计模式方法适合于不同的应用场景,是汇结了他们最宝贵的经验总结。最早的开发模式是1994年GOF四人共同完成的《Design Patterns - Elements of Reusable Object-Oriented Software》一书提及的23种经典设计模式,至今仍...原创 2018-11-27 16:34:13 · 26308 阅读 · 0 评论 -
全网最透彻的Hash分析
你知道HashMap中hash方法的具体实现吗?你知道HashTable、ConcurrentHashMap中hash方法的实现以及原因吗?你知道为什么要这么实现吗?你知道为什么JDK 7和JDK 8中hash方法实现的不同以及区别吗?如果你不能很好的回答这些问题,那么你需要好好看看这篇文章。文中涉及到大量代码和计算机底层原理知识。绝对的干货满满。整个互联网,把hash()分析的如此透彻的,别无二...原创 2018-03-13 13:34:20 · 50105 阅读 · 1 评论 -
Java常量池理解与总结
一.相关概念什么是常量用final修饰的成员变量表示常量,值一旦给定就无法改变!final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。Class文件中的常量池在Class文件结构中,最头的4个字节用于存储魔数Magic Number,用于确定一个文件是否能被JVM接受,再接着4个字节用于存储版本号,前2个字节存储次版本号,后2个存储主版本号,再接着是用于存放常量的常量池...原创 2018-03-13 13:28:56 · 45647 阅读 · 0 评论 -
JAVA多线程程序开发基础知识
JAVA多线程基础概念-程序、进程与多任务程序(program)是对数据描述与操作的代码的集合,是应用程序执行的脚本。 进程(process)是程序的一次执行过程,是系统运行程序的基本单位。程序是静态的,进程是动态的。系统运行一个程序即是一个进程从创建、运行到消亡的过程。 多任务(multi task)在一个系统中可以同时运行多个程序,即有多个独立运行的任务,每个任务对应一转载 2016-03-31 22:52:11 · 46336 阅读 · 0 评论 -
Java中的线程池
综述 在我们的开发中经常会使用到多线程。例如在Android中,由于主线程的诸多限制,像网络请求等一些耗时的操作我们必须在子线程中运行。我们往往会通过new Thread来开启一个子线程,待子线程操作完成以后通过Handler切换到主线程中运行。这么以来我们无法管理我们所创建的子线程,并且无限制的创建子线程,它们相互之间竞争,很有可能由于占用过多资源而导致死机或者OOM。所以在Jav原创 2016-04-29 16:06:25 · 49883 阅读 · 0 评论 -
Java中创建对象的5种方式
作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象。然而这里有很多创建对象的方法,我们会在这篇文章中学到。Java中有5种创建对象的方式,下面给出它们的例子还有它们的字节码使用new关键字} → 调用了构造函数使用Class类的newInstance方法} → 调用了构造函数使原创 2016-07-20 10:25:08 · 45629 阅读 · 0 评论 -
JAVA中关于Map的九大问题
通常来说,Map是一个由键值对组成的数据结构,且在集合中每个键是唯一的。下面就以K和V来代表键和值,来说明一下java中关于Map的九大问题。0、将Map转换为List类型在java中Map接口提供了三种集合获取方式:Key set,,value set, and key-value set.。它们都可以通过构造方法或者addAll()方法来转换为List类型。下面代码就说原创 2016-10-13 19:56:59 · 45491 阅读 · 0 评论 -
Java 8 时间日期库的20个使用示例
除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用Java 8的这套API。Java对日期,日历及时间的处理一直以来都饱受诟病,尤其是它决定将java.util.Date定义为可修改的以及将SimpleDateFormat实现成非线程安全的。看来Java已经意识到需要为时间及日期功能提供更好原创 2017-03-21 23:05:44 · 47296 阅读 · 1 评论 -
Java字符串格式化详解
在 Java 的 String 类中,可以使用 format() 方法格式化字符串,该方法有两种重载形式: String.format(String format, Object… args) 和 String.format(Locale locale, String format, Object… args) 。两者的唯一区别是前者使用本地语言环境,后者使用指定语言环境查看源码可以发现,原创 2017-04-10 17:35:18 · 46173 阅读 · 0 评论 -
Java虚拟机详解——JVM常见问题总结
先把本文的目录画一个思维导图:一、Java引用的四种状态:强引用: 用的最广。我们平时写代码时,new一个Object存放在堆内存,然后用一个引用指向它,这就是强引用。 * 如果一个对象具有强引用,那垃圾回收器绝不会回收它*。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不原创 2017-09-18 12:57:54 · 45859 阅读 · 0 评论 -
40个Java集合面试问题和答案
1.Java集合框架是什么?说出一些集合框架的优点?每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。集合框架的部分优点如下:原创 2017-11-28 18:54:02 · 46128 阅读 · 0 评论 -
Java中 VO、PO、DO、DTO、BO、QO、DAO、POJO的概念
PO(persistant object) 持久对象在 o/r 映射的时候出现的概念,如果没有 o/r 映射,没有这个概念存在了。通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的 java 对象。最简单的 PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。 PO 中应该不包含任何对数据库的操作。DO(Domain原创 2017-12-31 09:54:46 · 45981 阅读 · 0 评论 -
全面理解Java内存模型
Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java内存模型定义了多线程之间共享变量的可见性以及如何在需要的时候对共享变量进行同步。原始的Java内存模型效率并不是很理想,因此Ja...原创 2018-02-27 08:28:17 · 45853 阅读 · 0 评论 -
深入分析Java的序列化与反序列化
序列化是一种对象持久化的手段。普遍应用在网络传输、RMI等场景中。本文通过分析ArrayList的序列化来介绍Java序列化的相关内容。主要涉及到以下几个问题:怎么实现Java的序列化为什么实现了java.io.Serializable接口才能被序列化transient的作用是什么怎么自定义序列化策略自定义的序列化策略是如何被调用的ArrayLi原创 2016-02-03 23:01:35 · 46316 阅读 · 1 评论