
Java开发 | 学习系列
文章平均质量分 54
Java开发相关知识
Coder编程
欢迎关注Coder编程公众号,主要分享数据结构与算法、Java相关知识体系、框架知识及原理、Spring全家桶、微服务项目实战、DevOps实践之路、每日一篇互联网大厂面试或笔试题以及PMP项目管理知识等。更多精彩内容正在路上~
展开
-
Java高级特性——Java注解介绍与底层实现原理(下)
每天进步一点,不做curd工程师与Api调用工程师!欢迎大家访问我的博客:https://coder-programming.cn/为了防止篇幅过长不易阅读,在介绍Java注解时。分为两篇文章进行详细介绍。内容如下通过上一篇的介绍Java高级特性——Java注解介绍与底层实现原理(上),概念比较多。虽然多,但是我们也要去理解背下来,说不定哪天你在面试的时候面试官就对你进行发问呢!对相关的知识点有了初步的后,我们来结合实际联系一下如果自己写自定义注解,并进一步了解其底层原理实现。实现自.原创 2021-05-20 18:19:24 · 591 阅读 · 1 评论 -
JVM垃圾回收的时候如何确定垃圾?知道什么是GC Roots吗?
点击上方“Coder编程”,选择“置顶公众号”技术文章第一时间送达!JVM垃圾回收的时候如何确定垃圾?知道什么是GC Roots吗?每天进步一点,不做curd工程师什么是垃圾 简单来说就...原创 2020-04-29 08:00:00 · 420 阅读 · 0 评论 -
Java8:自制多糖 switch
1.背景JDK 12 和 JDK 13 已经发布了,伴随着许多对 Java 语法的小改进,比如我们非常熟悉的 switch:1.1 JDK12 之前switch (type) { case "all": System.out.println("列出所有帖子"); break; case "auditing": System.o...转载 2019-11-08 14:24:54 · 499 阅读 · 0 评论 -
Java8:使用 Optional 处理 null
前言写过 Java 程序的同学,一般都遇到过 NullPointerException ???? —— 为了不抛出这个异常,我们便会写如下的代码:User user = getUserById(id);if (user != null) { String username = user.getUsername(); System.out.println("Username is: ...转载 2019-11-08 14:22:15 · 456 阅读 · 0 评论 -
Java8:使用并行流
对于斐波那契数的计算,我们都知道最容易理解的就是递归的方法:public long recursiveFibonacci(int n) { if (n < 2) { return 1; } return recursiveFibonacci(n - 1) + recursiveFibonacci(n - 2);}当然这个递归也可以转化...转载 2019-11-07 11:11:47 · 949 阅读 · 0 评论 -
Java8:当 forEach 需要索引
在 上一篇文章 中,我们讨论了如何使用 Java8 中 Map 添加的新方法 computeIfAbsent 来统计集合中每个元素出现的所有位置,代码如下:public static Map<String, List<Integer>> getElementPositions(List<String> list) { Map<String, Li...转载 2019-11-01 13:55:45 · 4584 阅读 · 1 评论 -
理解Java中的强引用,软引用,弱引用,虚引用
原文地址:https://blog.youkuaiyun.com/qq_39192827/article/details/85611873前言在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这就像在商店购买了某样物品后,如果有用就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如果物品已经被扔到垃圾箱,想再...原创 2019-10-30 15:31:55 · 511 阅读 · 0 评论 -
Java8:对字符串连接的改进
我们提出一个需求:有一个 List<String>,将其格式化为 元素1, 元素2, 元素3, … 元素N 的字符串形式。毋庸置疑,Java8 之前我们的第一反应是使用 StringBuilder:public static String formatList(List<String> list, String delimiter) { StringBuilde...转载 2019-10-29 15:20:24 · 387 阅读 · 0 评论 -
Java8:Java8 中 Map 接口的新方法
我们提一个需求:给定一个 List<String>,统计每个元素出现的所有位置。比如,给定 list:["a", "b", "b", "c", "c", "c", "d", "d", "d", "f", "f", "g"],那么应该返回:a : [0]b : [1, 2]c : [3, 4, 5]d : [6, 7, 8]f : [9, 10]g : [11]很明显,我...转载 2019-10-25 09:30:13 · 441 阅读 · 0 评论 -
Java8:当 Lambda 遇上受检异常
前言我今天高高兴兴,想写个简单的统计一个项目下有多少行代码的小程序,于是咔咔的写下:long count = Files.walk(Paths.get("D:/Test")) // 获得项目目录下的所有目录及文件 .filter(file -> !Files.isDirectory(file)) ...转载 2019-10-18 14:24:47 · 661 阅读 · 0 评论 -
回顾一下正则表达式使用方式
基本符号:^ 表示匹配字符串的开始位置 (例外 用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串)$ 表示匹配字符串的结束位置表示匹配 零次到多次表示匹配 一次到多次 (至少有一次)? 表示匹配零次或一次. 表示匹配单个字符| 表示为或者,两项中取一项( ) 小括号表示匹配括号中全部字符[ ] 中括号表示匹配括号中一个字符 范围描述 如[0-...原创 2019-10-14 15:06:20 · 156 阅读 · 0 评论 -
5分钟带你读懂事务隔离性与隔离级别
如果并发事务没有进行隔离,会出现什么问题?事务的隔离级别有哪些?事务的隔离级别Read uncommittedRead CommittedRepeatable ReadsRead uncommitted隔离级别最低的一种事务级别。在这种隔离级别下,一个事务会读到另一个事务更新后但未提交的数据,如果另一个事务回滚,那么当前事务读到的数据就是脏数据,这就是脏读(Dirty Rea...原创 2019-04-12 00:03:09 · 224 阅读 · 0 评论 -
聊一聊Iterable与Iterator的那些事!
前言欢迎关注公众号:Coder编程获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识!在上一篇文章通过面试题,让我们来了解Collection,我们会发现Collection接口之上还有一个接口Iterable,Iterable接口里面又有Iterator接口,那他们到底有什么区别呢?我们接下来就来了解下Iterable与Iterator相关内容,也就是本章的主要内容了,说不...原创 2019-03-25 21:17:05 · 294 阅读 · 0 评论 -
一篇让你明白进程与线程之间的区别与联系
前言欢迎关注公众号:Coder编程获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识!本章主要介绍进程与线程的区别与联系相关知识点,也是我们面试过程中,经常会问到的了一个问题。希望通过这篇文章,能让大家理解相关知识点~涉及面试题:1.进程与线程之间有什么区别?2.进程、线程都各有什么特点?3.进程之间的是怎么进行交互的呢?4.什么是缓冲区溢出?5.进程之间如何进行...原创 2019-03-21 13:34:01 · 378 阅读 · 0 评论 -
通过面试题,让我们来了解Collection
前言欢迎关注微信公众号:Coder编程获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识!**本章主要介绍Collection集合相关知识,结合面试中会提到的相关问题进行知识点的梳理。希望能帮到大家~基于JDK1.8,如有错误,还望大家能够指出!涉及的Collection集合相关面试题1.什么是集合?2.AVA中集合类型都有哪些?有什么特点?3.说一说集合的父类Co...原创 2019-03-20 13:10:57 · 231 阅读 · 0 评论 -
设计模式精讲 | 笔记(一) | 快速入门UML
注:本章节将介绍快速入门UML1.本章导航1.1 UML定义1.2 UML特点2.1 UML分类2.2 UML结构式图形2.3 UML行为式图形2.4 UML交互式图形3.1 UML类图4.1 记忆技巧...原创 2019-02-18 22:18:05 · 432 阅读 · 0 评论 -
设计模式精讲 | 笔记 —— 序章
本专栏主要记录自己所学设计模式笔记。希望对大家有所帮助!目录导航设计模式精讲 | 笔记(一) | 快速入门UML设计模式精讲 | 笔记(二) | 理解软件设计七大原则设计模式精讲 | 笔记(三) | 简单工厂模式coding与源码分析设计模式精讲 | 笔记(四) | 工厂方法模式coding与源码分析设计模式精讲 | 笔记(五) | 抽象工厂模式coding与源码分析...原创 2019-02-18 14:34:26 · 403 阅读 · 0 评论 -
带你了解数据库中group by的用法
https://blog.youkuaiyun.com/omelon1/article/details/78813541原创 2019-04-08 22:34:14 · 5244 阅读 · 1 评论 -
用Redis轻松实现秒杀系统
导论曾经被问过好多次怎样实现秒杀系统的问题。昨天又在优快云架构师微信群被问到了。因此这里把我设想的实现秒杀系统的价格设计分享出来。供大家参考。秒杀系统的架构设计秒杀系统,是典型的短时大量突发访问类问题。对这类问题,有三种优化性能的思路:写入内存而不是写入硬盘异步处理而不是同步处理分布式处理用上这三招,不论秒杀时负载多大,都能轻松应对。更好的是,Redis能够满足上述三点。因此,用R...转载 2018-08-23 09:50:18 · 936 阅读 · 0 评论 -
设计模式篇(七)—— 代理模式
1.代理模式基本介绍代理模式的定义代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。举例说明假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的经纪人,来达到同样的目的。明星就是一个目标对象,他只要负责活动中的节目,而其他琐碎的事情就交给他的代理人(经纪人)来解决。 2.代理模式分类介绍2.1静态...原创 2018-08-17 16:30:44 · 246 阅读 · 0 评论 -
Java8学习篇 | (一)函数式编程简介
思维方式的转变以从一个城市集合中寻找是否存在Chicago为例:习惯的方式boolean found = false;for(String city : cities) { if(city.equals("Chicago")) { found = true; break; }}System.out.println("Found chicago?...转载 2018-04-28 17:07:37 · 310 阅读 · 0 评论 -
架构篇——基于OAuth2.0实现开放平台授权中心
基于OAuth2.0实现开放平台授权中心OAuth (开发授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的秘密的资源(如 照片、视频、联系人列表)而无需将用户名和密码提供给第三方应用在认证和授权的过程中设计的各方包括服务提供方:开放平台内部-- 应用体系用户:商城买家和卖家客户端,要访问服务提供方资源的第三方应用资源服务器 开放平台=》网关认证服务器 开放平台=》授权中心在O...原创 2018-07-04 15:13:08 · 6339 阅读 · 2 评论 -
设计模式篇(五)—— 观察者模式
1.观察者模式基本介绍 观察者模式,又可以称之为发布-订阅模式,观察者,顾名思义,就是一个监听者,类似监听器的存在,一旦被观察/监听的目标发生的情况,就会被监听者发现,这么想来目标发生情况到观察者知道情况,其实是由目标奖情况发送到观察者的。 使用场景:观察者模式多用于实现订阅功能的场景,例如微博的订阅,当我们订阅了某个人的微博账号,当这个人发布了新的消息,就会通知我们。 2.观...原创 2018-08-14 14:12:22 · 375 阅读 · 0 评论 -
设计模式篇(六)—— 策略模式
1.策略模式基本介绍 在软件开发中常常遇到这种情况,实现某一个功能有多种算法或者策略,我们可以根据应用场景的不同选择不同的算法或者策略来完成该功能。把一个类(A)中经常改变或者将来可能改变的部分提取出来,作为一个接口(B),然后在类(A)中包含这个接口(B),这样类(A)的实例在运行时就可以随意调用实现了这个接口的类(C)的行为。比如定义一系列的算法,把每一个算法封装起来, 并且使它们可相互...原创 2018-08-15 14:23:30 · 334 阅读 · 0 评论 -
设计模式篇(一)——二十四种设计模式,七种设计原则
1.什么是设计模式设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题...原创 2018-08-13 14:35:15 · 617 阅读 · 0 评论 -
设计模式篇(二)—— 单例模式
1.单例模式基本介绍单例模式:类只能有一个实例。 类的特点: 1、私有构造器; 2、内部构造实例对象; 3、对外提供获取唯一实例的public方法。 常见的单例模式实现有五种形式: 1、饿汉式。 2、懒汉式。 3、双重检查锁式。 4、静态内部类式。 5、枚举式。 2.五种形式分别介绍一、饿汉式饿汉式...原创 2018-08-13 15:25:44 · 250 阅读 · 0 评论 -
设计模式篇(三)—— 工厂模式及抽象工厂模式
1.工厂模式基本介绍工厂模式概念:工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 工厂模式,主要实现了创建者和调用者的分离。 分类:1、简单工厂模式;2、工厂方法模式;3、抽...原创 2018-08-13 17:11:04 · 367 阅读 · 0 评论 -
设计模式篇(四)—— 装饰者模式
1.装饰者模式基本介绍动态地将责任附加到对象上,对扩展功能来说,装饰者比继承更有弹性更灵活(因为子类继承父类扩展功能的前提,是已知要扩展的功能是什么样的,而这是在编译时就要确定的,但是装饰者模式可以实现动态(在运行时)去扩展功能)。例如:有一家店卖饮品,饮品就有不少种,每一种还可以加项,比如给可乐加冰,加糖,兑水什么的,每次加项的价格还不同,就会将代码弄的很繁琐,这种情况下就可以使用装饰者...原创 2018-08-13 17:31:06 · 251 阅读 · 0 评论 -
面试必备的数据库悲观锁与乐观锁
欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体...原创 2019-04-16 22:30:43 · 309 阅读 · 0 评论 -
深入浅出了解“装箱与拆箱”
每章一点正能量:每当你想要放弃的时候,就想想是为了什么才一路坚持到现在。前言最近在回顾复习Java基础中的一些知识点,发现了一些以前见过但是没有留意却特别有意思的知识特性,比如这次想分享的Java中一个常见的特性:自动装箱与拆箱。这个知识点和特性其实在我们开发过程中经常会遇到。同时我们也会去使用一些基本数据类型或者是封装数据类型,但是对于他们之间的一些转换等特性可能不是特别清楚。也可能...原创 2019-04-27 14:33:41 · 277 阅读 · 0 评论 -
跳槽季,金三已过,银四你准备好了吗?
金三已过,想跳槽的同学得好好抓紧银四了。不过今年的寒冬确实有点冷~ 各路大厂都有不同程度的裁员。因此我们要在面试过程的多做一些准备,我呢也在网上搜罗了一些大厂的面试题,在这里给大家分享一下,希望能给大家一些帮助与参考~阿里面试题 开发中Java用了比较多的数据结构有哪些? 谈谈你对HashMap的理解,底层原理的基本实现,HashMap怎么解决碰撞问题的? 对J...原创 2019-04-01 22:01:26 · 328 阅读 · 0 评论 -
HR面试都会问什么问题?(上)
1.请你自我介绍一下你自己回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回答...原创 2019-09-10 11:02:31 · 9745 阅读 · 0 评论 -
Java基础笔试练习(十)
1.Java中所有类的父类是( )?A.FatherB.DangC.ExceptionD.Object答案:D解析:D,java中Object是所有类的父亲,所有类的对象都是Class的实例。2.在 main() 方法中给出数组buffer和下标i,如果将此下标中的元素显示到控制台上,需要使用( )。A.System.out.print (buffer[i]);B.FileO...原创 2019-09-25 20:45:20 · 2464 阅读 · 0 评论 -
Java基础笔试练习(九)
1.下面所示的java代码,运行时,会产生()类型的异常 ?int Arry_a[] = new int[10];System.out.println(Arry_a[10]);A.ArithmeticExceptionB.NullPointExceptionC.IOExceptionD.ArrayIndexOutOfBoundsException答案:D解析:定义的数组长度...原创 2019-09-25 20:35:55 · 1296 阅读 · 0 评论 -
Java基础笔试练习(四)
1.编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。A.javaB.classC.htmlD.exe答案:B解析:Java源程序的后缀名为“.java”,经过编译之后生成的字节码文件后缀名为“.class”2. 问以下哪个说法是正确的?()A 派生出子类 B, B 派生出子类 C,并且在 java 源代码有如下...原创 2019-09-18 20:49:44 · 3206 阅读 · 0 评论 -
Java基础笔试练习(三)
1.下列InputStream类中哪个方法可以用于关闭流?A.skip()B.close()C.mark()D.reset()答案:B解析:inputstream的close方法用来关闭流skip()用来跳过一些字节mark()用来标记流reset()复位流2.下面语句正确的是()A.x+1=5B.i++=1C.a++b=1D.x+=1答案:D解析:选D,+...原创 2019-09-17 19:36:51 · 1416 阅读 · 0 评论 -
Java基础笔试练习(二)
1. HashMap的数据结构是怎样的?A.数组B.链表C.数组+链表D.二叉树答案:C解析:JDK8以后,HashMap的数据结构是数组+链表+红黑树2. 在 JAVA 编程中,Java 编译器会将 Java 程序转换为( )?A.字节码B.可执行代码C.机器代码D.以上都不对答案:A解析:编译器将Java源代码编译成字节码class文件类加载到JVM里面后...原创 2019-09-16 20:05:47 · 1921 阅读 · 0 评论 -
Nginx监控安装:Filebeat+ES+Grafana(全)
前言本章将介绍Nginx监控安装1. 安装Nginx / OpenResty1.1 安装 OpenRestyVeryNginx 基于 OpenResty,所以你需要先安装它:OpenResty安装前准备Centos:yum install -y readline-devel pcre-devel openssl-devel gcc GeoIP-develDebian|Ubunt...原创 2019-09-04 09:35:13 · 2486 阅读 · 0 评论 -
数据结构与算法(三):带你读懂选择排序(Selection sort)
1. 基本介绍选择式排序(select sorting)也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。2. 选择排序思想基本思想是:第一次从 arr[0]~arr[n-1]中选取最小值,与 arr[0]交换,第二次从 arr[1]~arr[n-1]中选取最小值,与 arr[1]交换,第三次从 arr[2]~arr[n-1]中选取最小值,...原创 2019-06-26 19:39:14 · 326 阅读 · 0 评论 -
强烈推荐一款开源项目! (OPC)微服务能力开放平台!
简介open-capacity-platform 微服务能力开放平台简称ocp是基于layui+springcloud的企业级微服务框架(用户权限管理,配置中心管理,应用管理,…),其核心的设计目标是分离前后端,快速开发部署,学习简单,功能强大,提供快速接入核心接口能力,其目标是帮助企业搭建一套类似百度能力开放平台的框架;基于layui前后端分离的企业级微服务架构兼容sprin...原创 2019-06-12 09:56:13 · 7070 阅读 · 0 评论