自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(256)
  • 资源 (1)
  • 收藏
  • 关注

原创 2021备战秋招10W字面试小抄pdf版,附操作系统、计算机网络面试题

小伙伴们好,我是Java马神。6月份马上过去了,秋招提前批已经到来,小编在这里给大家分享自己整理的《面试小抄》目前的pdf版本,包括了 Java基础、Java并发、JVM、MySQL、Redis、Spring、操作系统、计算机网络相关面试题。MyBatis、MQ、分布式、系统设计等正在整理中,更新后,小编也会分享出来的呢!现在,快来看看这本面试小抄现在有哪些内容吧~目录一、Java基础...

2021-06-24 20:23:32 360

原创 超详细!Github星标99K的阿里内部Spring Boot 2.5.x开发实战笔记

阿里Spring Boot 2.5.x开发实战笔记本笔记全面覆盖了 Spring Boot 2.5 新特性、自动化配置原理、如何开发 REST API、实战 MySQL 数据库、Redis 高并发缓存、MongoDB 数据库、MQ 消息队列、安全机制、性能监控、高级面试题等热门知识点。Spring Boot 2.5 新特性Spring Boot2.5实战开发 REST API模拟淘...

2021-06-22 13:30:57 356

原创 真滴香啊,阿里大神又限时开源一个SQL神器!手慢则无

今天给大家分享一份大佬整理某厂的SQL的语法大全,包含两本书籍:《SQL基础知识》和《SQL进阶知识》。和其他SQL书籍不一样的是,这份《SQL语法大全》不仅包括SQL基础和进阶语法的所有内容,而且还有各个语法的解释、大量的实例讲解和批注等等,非常通俗易懂,方便大家跟着一起来实操。SQL基础篇中按SQL底层执行逻辑开始讲解各个知识点,限于篇幅,截图示例部分内容:基础篇中也整理了常用的一些函...

2021-06-17 16:52:24 293

原创 GitHub上标星120K的Spring Security全彩笔记,你想了解的都在这了

联网项目众多,随之而来的网络攻击手段也是防不胜防,数据安全是每个公司必须考虑的问题。说到安全,你可能会想到加解密算法、HTTPS 协议等常见的技术体系,但系统安全是一个综合性的主题,并非简单采用一些技术体系就能构建有效的解决方案。就以一个分布式环境下的应用场景为例。假设你要开发一个工单系统,而生成工单所依赖的用户订单信息维护在第三方订单系统中。为了生成工单,就必须让工单系统读取订单系统中的用户订单...

2021-06-09 16:25:40 205

原创 将博客搬至CSDN

https://blog.csdn.net/Javajdkbz?spm=1000.2115.3001.5343

2021-06-08 16:26:59 70

原创 JAVA 线上故障排查完整套路,从 CPU、磁盘、内存、网络、GC 一条龙!

CPU磁盘内存GC问题网络线上故障主要会包括cpu、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是df、free、top 三连,然后依次jstack、jmap伺候,具体问题具体分析即可。CPU一般来讲我们首先会排查cpu方面的问题。cpu异常往往还是比较好定...

2021-02-18 19:59:23 131

原创 14种经典Java算法详解,面试官随便问

又是新的一年,去年“金九银十”没赶上,问到算法一脸懵逼,吞吞吐吐。今年重振旗鼓,记住下面这些算法,手撕面试官!今年“金九银十”我必上的首班车!二分查找又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。public static int biSearch(int []array,int.

2020-09-22 16:53:17 791

原创 牛皮啊,兄弟!性能篇系列—stream详解

Stream APIJava 8集合中的Stream相当于高级版的IteratorStream API通过Lambda表达式对集合进行各种非常便利高效的聚合操作,或者大批量数据操作Stream的聚合操作与数据库SQL的聚合操作sorted、filter、map等非常类似 在数据操作方面,Stream不仅可以通过串行的方式实现数据操作,还可以通过并行的方式处理大批量数据,提高处理效率// java.util.Collectiondefault Stream<E> stream()

2020-09-18 20:15:46 456

原创 程序员:小姐姐,你学“反射”脱我裤子干嘛,这样不太好吧

前言:反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码))首先学习反射之前,我要提出疑问:反射是个什么东西?它是用来做什么的?平时的应用场景有哪些?为啥要用它?它有什么优缺点?它的工作原理是什么?我怎么使用它?注意:光理论是不够的,在此送大家十套2020最新Java架构实战教程+大厂面试题库,转发本文,关注我后在后台私信【666】即可免费获取!Q1:什么是反射?A:反射就是把java类中的各种成分..

2020-09-14 20:19:30 658

原创 CPU使用率100%怎么办

工作中遇到CPU使用率100%,不要慌,一起来找出原因并fix掉它。记住这里大致流程,当线上突然遇到时,也不必手足无措。总体流程找出CPU比较高的进程PIDtop打印该进程下线程的CPU占用比较高的tidtop -Hp {PID}将该tid进行16进制转换idprintf "%x\n" {tid}打印线程的堆栈信息jstack {PID} |grep {id} -A 100当然这四步的执行需要时间,但我们可以将这几步写成sh...

2020-08-22 20:59:09 1076

原创 使用limit分页查询时,做delete操作,会导致丢失查找数据

一、准备数据 1.1 mysql数据脚本 1.2代码 二、验证 1.验证前全部数据 2.第一页数据 3.删除记录 4. 新增记录 5.第二页数据 6. 验证后的数据 7. log 三、结论 四、建议 没看过瘾?想要源文件? 一、准备数据1.1 mysql数据脚本 ...

2020-08-22 20:57:16 451

原创 sunFlow基于是基于camunda开发的工作流web系统

unFlow基于是基于camunda开发的工作流web系统。设计理念是易用,简单,美观,高效。 尤其注重对开发友好; 项目设计之初就考虑了前后端分离的vue开发模式。角色和路由之间的绑定跟角色和数据权限之间是不耦合的。前端开发只需要开发路由组件, 后端开发只需要开发 数据api接口。从菜单配置界面上分前端做的是左边的部分,后端是开发右边的部分,当然如果你不用工作流只用后台权限管理本框架也是一个绝佳的选择。wiki软件架构软件架构说明:目前项目分三个模块,camunda(工作流相关服务),upms-s

2020-08-20 16:11:50 1462

原创 看阿里P7讲MyBatis:从MyBatis的理解以及配置和实现全帮你搞懂

前言MyBatis 是一款优秀的持久层框架,一个半 ORM(对象关系映射)框架,它支持定制化 SQL、存储过程以及高级映`射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。MyB...

2020-08-11 20:09:08 336

原创 搞快点搞快点舍弃BeanUtils工具类吧,MapStruct才厉害!!!

这一篇文章就来简单介绍下MapStruct的用法,并且再和其他几个工具类进行一下对比。为什么需要MapStruct ?首先,我们先说一下MapStruct这类框架适用于什么样的场景,为什么市面上会有这么多的类似的框架。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。很多人都对三层架构、四层架构等并不陌生。甚至有人说:"计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决,如...

2020-08-10 20:27:17 398

原创 大牛总结的 Spring Data JPA使用方法,不是一般的香啊

Spring Data JPA 是在 JPA 规范的基础上进行进一步封装的产物,和之前的 JDBC、slf4j 这些一样,只定义了一系列的接口。具体在使用的过程中,一般接入的是 Hibernate 的实现,那么具体的 Spring Data JPA 可以看做是一个面向对象的 ORM。虽然后端实现是 Hibernate,但是实际配置和使用比 Hibernate 简单不少,可以快速上手。如果业务不太复杂,个人觉得是要比 Mybatis 更简单好用。本文就简单列一下具体的知识点,详细的用法可以见参考文献中的博

2020-08-06 21:07:03 762 1

原创 JVM类加载器,类加载机制详解,看这一篇就够了

前言今天我们来讲讲jvm里类加载的过程,我们写了那么多类,却不知道类的加载过程,岂不是很尴尬。jvm的启动是通过引导类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的,这个类是由jvm的具体实现指定的。[来自官方规范]jvm组成结构之一就是类装载器的系统,我们今天就来仔细讲讲这个组件。Java代码执行流程图大家通过这个流程图,了解一下我们写好的Java代码是如何执行的,其中要经历类加载器这个流程,我们就来仔细讲讲这里面的知识点。

2020-08-06 21:03:40 421

原创 面试总被jvm对象的访问问题打回,推荐你看看这篇文章

对象的内存布局#在 HotSpot虚拟机中,对象在内存中存储的布局分为三块区域:对象头,实例数据,和对齐填充。对象头#对象头包括如下两部分信息:MarkWord:用于存储对象自身的运行时数据,如哈希码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。为了在极小空间内存储更多的信息,它被设计成了一个非固定的数据结构,根据对象的状态来复用自己的存储空间,如下:类型指针:到对象类型数据的指针,即虚拟机通过这个指针来确定这个对象属于哪个类。(有的虚拟机通过句柄池来实现.

2020-08-06 21:02:49 346

原创 SpringBoot中启动Tomcat的步骤流程

SpringBoot中如何启动Tomcat流程SpringBoot 项目之所以部署简单,其很大一部分原因就是因为不用自己折腾 Tomcat 相关配置,因为其本身内置了各种 Servlet 容器。一直好奇: SpringBoot 是怎么通过简单运行一个 main 函数,就能将容器启动起来,并将自身部署到其上 。此文想梳理清楚这个问题。我们从SpringBoot的启动入口中分析:Context 创建// Create, load, refresh and run the Applic.

2020-08-03 20:17:02 1859

原创 关于Java日志组件间关系的知识点分析

Java日志组件间关系详解一、 总览本文章不对日志组件进行优劣评价,只是对关系进行对比。在日志中组件中存在这样的几种关系, 这几种关系理解清楚, 有助于我们对日志的引入和使用。二、 日志门面日志门面就是指直接引入我们程序中进行记录日志的日志组件,作为日志门面的这些组件会在程序中直接依赖, 上图中就列举的几种常见的日志门面的组件。像一些软件直接回默认使用一些组件, 比如Spring使用的就是commons-logging, activiti使用的日志门面就是slf4j, 其他的软件也都会选

2020-08-03 20:16:37 372

原创 没有比这个更全的Java ThreadLocal实例用法了

java ThreadLocal使用案例详解本文借由并发环境下使用线程不安全的SimpleDateFormat优化案例,帮助大家理解ThreadLocal.最近整理公司项目,发现不少写的比较糟糕的地方,比如下面这个:public class DateUtil { private final static SimpleDateFormat sdfyhm = new SimpleDateFormat( "yyyyMMdd"); public synchroniz

2020-08-03 20:14:33 352

原创 全体起立,给我看SpringBoot中启动Tomcat的步骤流程

SpringBoot中如何启动Tomcat流程SpringBoot 项目之所以部署简单,其很大一部分原因就是因为不用自己折腾 Tomcat 相关配置,因为其本身内置了各种 Servlet 容器。一直好奇: SpringBoot 是怎么通过简单运行一个 main 函数,就能将容器启动起来,并将自身部署到其上 。此文想梳理清楚这个问题。我们从SpringBoot的启动入口中分析:Context 创建// Create, load, refresh and run the Applic.

2020-08-03 20:12:17 536

原创 浅析Java线程Dump分析工具jstack解析及使用环境

Java线程Dump分析工具jstack使用详解jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:jstack [-l][F] pid如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jst

2020-08-03 20:09:46 627

原创 强啊老铁,纯手撸Java编程实现高斯模糊和图像的空间卷积的实例讲解

Java编程实现高斯模糊和图像的空间卷积详解高斯模糊高斯模糊(英语:Gaussian Blur),也叫高斯平滑,是在Adobe Photoshop、GIMP以及Paint.NET等图像处理软件中广泛使用的处理效果,通常用它来减少图像杂讯以及降低细节层次。这种模糊技术生成的图像,其视觉效果就像是经过一个半透明屏幕在观察图像,这与镜头焦外成像效果散景以及普通照明阴影中的效果都明显不同。高斯平滑也用于计算机视觉算法中的预先处理阶段,以增强图像在不同比例大小下的图像效果。 从数学的角度来看,图像的高斯模糊过

2020-08-01 19:22:27 677

原创 牛人总结springboot之jackson的两种配置方式总结

springboot之jackson的两种配置方式springboot 针对jackson是自动化配置的,如果需要修改,有两种方式:方式一:通过application.yml配置属性说明:##spring.jackson.date-format指定日期格式,比如yyyy-MM-dd HH:mm:ss,或者具体的格式化类的全限定名spring.jackson.deserialization是否开启Jackson的反序列化spring.jackson.generator是否开启json的

2020-08-01 19:20:27 955

原创 Java获取Html文本中的img标签下src中的实例方法

Java获取Html文本中的img标签下src中的内容方法如下所示:/** * 得到网页中图片的地址 * @param sets html字符串 */ public Set<String> getImgStr(String htmlStr) { Set<String> pics = new HashSet<String>(); String img = ""; Pattern p_image; Matcher m_image;

2020-08-01 19:16:54 471

原创 MySQL从入门到放弃安装的心得日志

详解MySQL从入门到放弃-安装学习内容1.软件安装及服务器设置。2.(选做,但是强烈建议) 使用图形界面软件 Navicat for SQL3.数据库基础知识数据库定义 关系型数据库 二维表 行 列 主键 外键4.MySQL数据库管理系统数据库 数据表 视图 存储过程软件安装MySQL下载链接:MySQL下载第一个,之后解压缩。我的目录在C:\Users\Public\MySQL,之后在该文件夹配置my.ini接下来启动MySQL,在.

2020-08-01 19:14:49 369

原创 如何解决MySQL多线程复制遇到Error_code: 1872

MySQL多线程复制遇到Error_code: 1872的解决方案上周在生产环境上遇到一个问题,不敢独享,拿出来给小伙伴们做个简单的分享。起因 :由于IDC机房断电(估计又是哪里被挖掘机碰了下吧),导致所有服务器重启,影响到了其中的MySQL数据库。来看下这时数据库遇到的问题:数据库版本 :MySQL 5.7.10问题表现:从机复制报如下错误:Slave SQL for channel ”: Slave failed to initialize relay log info struct

2020-08-01 19:13:01 462

原创 MySQL截取和拆分字符串函数实例讲解

MySQL截取和拆分字符串函数用法示例本文实例讲述了MySQL截取和拆分字符串函数用法。分享给大家供大家参考,具体如下:首先说截取字符串函数:SUBSTRING(commentid,9)这个很简单,从第9个字符开始截取到最后。SUBSTRING的参数有三个,最后一个是截取的长度,默认是到结尾,负数是倒数第几位。接着说拆分字符串函数:SUBSTRING_INDEX(commentid, '-', 1)这个就稍稍复杂一些了,他的意思是以 - 进行拆分字符串,从第一个关键词

2020-08-01 19:12:01 427

原创 找不到或无法加载主类(IDEA中启动spring boot项目)

提示:需要对IDEA编辑工具使用熟悉出现一个问题,就是spring boot项目在IDEA中,启动类右键运行,控制台提示:错误: 找不到或无法加载主类 xxx.xxx.xxx.xxxx 启动类包名。说明一下我的情况,项目是从远程git仓库导出的Maven项目,直接使用Maven打包jar是可以成功的,并且生成了 target输出目录,生成了target目录后就可以运行了,不会报错找不到主类,但是你会发现你修改的Java代码无效,也就是不会编译到target目录中。搞了半天,其实从开始到最后都

2020-07-29 19:36:16 1138

原创 大神手把手教你Intellij Idea部署OpenCV 4.0.0环境的具体步骤

Intellij Idea部署OpenCV 4.0.0环境本文为大家分享了Intellij Idea部署OpenCV 4.0.0环境,供大家参考,具体内容如下建议 OpenCV-4.0.0 的解压位置不要放在C盘1. 首先下载并安装好Intellij Idea 2018.3 或者其他版本的Idea2. 新建一个Java工程2.1 点击File2.2 点击Java直接点Next2.3 可以选择或者不选择2.4 填写好项目名称3. 添加...

2020-07-29 19:35:17 718 1

原创 嗯,不错通俗易懂的讲解Java8 ParallelStream并发安全原理

Java8 parallelStream并发安全背景Java8的stream接口极大地减少了for循环写法的复杂性,stream提供了map/reduce/collect等一系列聚合接口,还支持并发操作:parallelStream。在爬虫开发过程中,经常会遇到遍历一个很大的集合做重复的操作,这时候如果使用串行执行会相当耗时,因此一般会采用多线程来提速。Java8的paralleStream用fork/join框架提供了并发执行能力。但是如果使用不当,很容易陷入误区。Java8的parall

2020-07-29 19:34:11 653

原创 神仙打架:RabbitMQ七战Kafka,看看谁才是王者

作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择RabbitMQ还是Kafka?”。基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差异的。不同的场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。这篇文章会先介绍RabbitMQ和Apache Kafka内部实现的相关概念。紧接着会主要介绍这两种技术的主要不同点以及他们各自的优缺点,最后我们

2020-07-22 21:11:20 416

原创 开发两年了,构造方法和方法重载还不会啊,弟弟?我来点点你

成员方法类成员主要包括成员变量和成员方法。 带参数的成员方法 带参数的成员方法可以接受用户输入的内容。创建带参数的方法时定义的参数叫形式参数,即形参;调用方法时传入的参数叫实际参数,即实参。 语法结构:// 有参方法[访问修饰符] 返回值类型 方法名(参数列表){ 代码; return 具体的返回值; }复制代码参数传递:基本数据类型做参数时,传递的是值,不能出方法的范围 引用数据类型做参数时,传递的是地址,可以影响方法外部 特殊:String做参数时,等同于基本数.

2020-07-22 21:07:49 343

原创 一道腾讯的面试题:如何避免 CDN 为 PC 端缓存移动端页面

❞如果 PC 端和移动端是一套代码则不会出现这个问题。「这个问题出现在 PC 端和移动端是两套代码,却共用一个域名。」使用 nginx 配置如下,根据 UA 判断是否移动端,而走不同的逻辑 (判断UA是否移动端容易出问题)location / { // 默认 PC 端 root /usr/local/website/web; # 判断 UA,访问移动端 if ( $http_user_agent ~* "(Android|webOS|iPhone|iPad|B

2020-07-14 15:18:55 562

原创 太厉害了,阿里大牛居然把Git,GitHub总结的这么全面,撸源码去

“版本控制系统”( Version Control System, vcs)是程序代码管理软件的通称,是用来保存程序文件的修改记录以及历史版本,以便日后查看或是使用。Vcs已经有数十年的发展历史,最早期的系统是采用集中管理和控制的方式。如果要修改某一个 程序文件,必须先将它锁定,然后取出修改。在完成修改和回传之前,其他人都不能更改这个程序文件。这种方式可以有效避免“冲突”( confict)的发生(也就是防止不同人同时修改同一段程序代码所造成混淆的情况) ,但是付出的代价,是效率降低。因为如果想要修改的

2020-07-10 14:12:21 982

原创 No Code的世界绝无代码!GitHub CEO:编码的未来根本就没有编码

近年来,无代码开发日渐流行。非专业的人员现在也能够参与到开发中了!越来越多的企业选择了无代码开发平台,以提高工作的效率,互联网企业或因无代码/低代码开发迎来「新时代」。世界正变得由软件驱动。对于IT部门而言,这意味着对软件的需求不断增长,以满足不断变化的需求。用户对可用性有很高的期望,并要求业务运营具有更大的灵活性。频繁的更新和升级是「新常态」——这意味着产品的2.0版可能会与第一个版本几乎同时构建。但是招开发人员也不是一件容易的事情。更快的开发软件,更高的自动化程度,这是企业的目.

2020-07-10 14:12:14 624

原创 谷歌、微软、亚马逊、阿里、字节深度学习面试问答整理(基础篇)

初学者深度学习面试题通常会问这些问题,以使应聘者熟悉面试官和面试环境。尽管问题本身可能很难回答,但此级别是你最好的机会,可以说服面试官您关于深度学习的基本概念很清楚。你对这些问题的答案不必太详尽,但请记住,面试官可能会在稍后提出更高级的问题时回想起你的答案。相当于暗示面试官,你的技术大概会在什么程度。1.感知器和逻辑回归之间有什么区别?多层感知器(MLP)是我们用于分类的最基本的神经网络之一。对于二元分类问题,我们知道输出可以是0或1。这就像我们的简单逻辑回归一样,其中我们使用logit函数

2020-07-10 14:12:07 488

原创 Tomcat爆出安全漏洞!Spring Cloud/Boot框架多个版本受影响

01事件背景6月25日, Apache 官方安全团队通过邮件公开报告了一个高危漏洞,邮件中介绍了 HTTP/2 拒绝服务漏洞的细节及解决方案。如下图所示:漏洞详情链接:http://mail-archives.apache.org/mod_mbox/www-announce/202006.mbox/%[email protected]%3E翻译漏洞名称:Apache Tomcat HTTP/2 拒绝服务漏..

2020-07-10 14:12:00 834

原创 PHP是最好的语言?Go:论性能,在座各位都是渣渣

月初看到斗鱼开源了基于 Go 语言的微服务框架 Jupiter,我就开始关注微服务架构的逐渐 “Go 化”,这已经是互联网应用开发模式的不知道多少次变革了。从低效的单体应用开发时代,到一切皆云上的云原生时代,如同一股巨浪滚滚而来。微服务架构作为云原生落地实践的代表,凭借“分而治之”的手段,把臃肿的单体应用拆分为可以各自为战的微服务,成为各家大厂的首选。 而 Go 这个高性能的编译型编程语言,其简明的语法、丰富的内置类型和极高的并发性能,让开发者发现这是落地微服务架构实践的绝佳利器。01.

2020-07-02 20:07:11 525

原创 还有人说GraphQL不行?现在轻松秒杀RESTful,屌不屌

REST作为一种现代网络应用非常流行的软件架构风格,自从Roy Fielding博士在2000年他的博士论文中提出来到现在已经有了20年的历史。它的简单易用性,可扩展性,伸缩性受到广大Web开发者的喜爱。REST 的 API 配合JSON格式的数据交换,使得前后端分离、数据交互变得非常容易,而且也已经成为了目前Web领域最受欢迎的软件架构设计模式。但随着REST API的流行和发展,它的缺点也暴露了出来:滥用REST接口,导致大量相似度很高(具有重复性)的API越来越冗余。 对于前端.

2020-07-01 22:14:54 702

effective-java.pdf

《Effective Java》是Java程序员必看的一本书神书,号称Java四大名著之一。随着Java 8,9, 10 ,甚至11的发布,Java语言发生了很多的变化,之前的第二版有些内容已经不太适用了。 这本书第三版的英文版已经于去年发布。在发布后,便有程序员开始翻译其中文版,目前所有章节均已翻译完成,目前已经开放阅读及下载。

2020-04-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除