×

Java - 收藏集 - 掘金

96
掘金官方
2017.06.23 14:48* 字数 77258

Java 基础思维导图,让 Java 不再难懂 - 工具资源 - 掘金
思维导图的好处 最近看了一些文章的思维导图,发现思维导图真是个强大的工具。了解了思维导图的作用之后,觉得把它运用到java上应该是个不错的想法,这样回顾知识点的时候一目了然,快速知道自己的短板。 思维导图不仅仅只有简单明了这个好处,它还能加深人对主题的印象和...

一文让你明白 Java 字节码 - 后端 - 掘金
Intro 在这,我们相互学习,共同成长,分享使我们并不孤单. BRVAH@www.recyclerview.org ...

使用示例带你提前了解 Java 9 中的新特性 - 掘金
Java 作为 Android 的基础编程语言,每一次迭代也是备受安卓开发人员的关注。这不,Oracle 公司在今年即将发布 Java 9 正式版,一些新的特性和改进很是值得期待。 周末时间,拜读了国外的一个 Java 大牛写的有关 Java SE 9 的新功...

Java 数据结构之 Map 学习总结 - Android - 掘金
前言:     前面学习总结了List的使用及效率对比,今天总结学习一下键值映射关系Map,顺便学习一下Android中使用Map需要注意哪些,以及谷歌官方针对Android对Map做了哪些优化。 先了解下Map    ...

设计模式系列 - 观察者模式的实现与总结 - 后端 - 掘金
JAVA设计模式系列: 单例模式 观察者模式 ...

一看你就懂,超详细 java 中的 ClassLoader 详解 - Android - 掘金
本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 ClassLoader翻译过来就是类加载器,普通的java开发者其实用到的不多,但对于某些框架开发者来说却非常常见。理解ClassLoa...

设计模式-观察者模式 - 掘金
可进入我的博客查看原文。 定义 观察者模式定义了对象之间的一对多依赖,使得当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。观察者模式又叫发布/订阅模式。 角色 抽象主题(Subject):它把所有观察者对象的引用保存到一个列表里,每个主题都可以有...

Java 语法清单 - 后端 - 掘金
Java 语法清单翻译自 egek92 的 JavaCheatSheet,从属于笔者的 Java 入门与实践系列。时间仓促,笔者只是简单翻译了些标题与内容整理,支持原作者请前往原文点赞。需要注意的是,此文在 Reddit 上也引起了广泛的讨论,此文讲解的语法要...

SSM(十) 项目重构-互联网项目的Maven结构 - 掘金
互联网项目的maven.jpg 前言 很久没有更新博客了,之前定下周更逐渐成了月更。怎么感觉像我追过的一部动漫。这个博文其实很早就想写了。之前所有的代码都是在一个模块里面进行开发,这和maven的理念是完全不相符的,最近硬是抽了一个时间来对项目的结构进行了一次...

程序员必备利器——Java程序性能分析工具Java VisualVM(Visual GC) - 掘金
程序员必备利器——Java程序性能分析工具Java VisualVM(Visual GC) VisualVM 是一款免费的\集成了多个JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量...

Java 泛型详解 - 后端 - 掘金
泛型是 Java 中一个非常重要的知识点,在 Java 集合类框架中泛型被广泛应用。本文我们将从零开始来看一下 Java 泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除。...

趣谈并发 2:认识并发编程的利与弊 - Android - 掘金
读完本文你将了解: ...

设计模式之单例模式 - 掘金
前言 作为一个好学习的程序开发者,应该会去学习优秀的开源框架,当然学习的过程中不免会去阅读源码,这也是一个优秀程序员的必备素养,在学习的过程中很多人会遇到的障碍,那就是设计模式。很多优秀的框架会运用设计模式来达到事半功倍的效果。鉴于自己之前对设计模式的生疏,在...

javascript array js 缓存算法,数组去重、数组随机抽取、字母串转数字,数字转字符串 - 前端 - 掘金
前言 因为平时在写代码的过程中,有些算法会经常重复写,比如数组去重、数组抽取随机值等!虽然这些不是很难的逻辑,但是每次刚开始遇到需求的时候,还是需要琢磨一些时间才能想出来,所以此文档把这些常见算法的思想记录下...

Java 开发者应该学习的 8 个工具 - Android - 掘金
在Stormpath(一款用户管理和认证服务),我们认真对待质量和效率。任何一个优秀的工匠,仅仅拥有天赋是不够的,你在工作中还需要正确的工具。工程学不仅仅是科学,更是艺术。所以,在Stormpath,尽管我们拥有天赋,我们仍不断寻找所需的有用的工具。我们的工程...

50道Java基础编程练习题 - 掘金
50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈,这里为了做收藏用。 1.指数计算问题 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔...

深入分析 Java Web 中的中文编码问题 - 后端 - 掘金
深入分析 Java Web 中的中文编码问题 背景: 编码问题一直困扰着程序开发人...

深入分析 Java I/O 的工作机制 - 后端 - 掘金
Java 的 I/O 类库的基本架构 I/O 问题是任何编程语言都无法回避的问题,可以说 I/O 问题是整个人机交互的核心问题,因为 I/O 是机器获取和交换信息的主要渠道。在当今这个数据大爆炸时代,I/O 问题尤其突出,很容易成为一个性能瓶颈。正因如此,所以...

十分钟-Nginx入门到上线 - 掘金
前言 新书Java并发编程系统与模型已上线,欢迎拜读。   由于微信小程序要使用Https,但是又不能修改已有线上的配置。所以最简单的方法就是使用nginx转发,在nginx上使用https,然后再转发到内部服务器。Nginx由于其优良的性...

我的 Java 后端书架 - 后端 - 掘金
我的Java后端书架 1月前 5079 本书架主要针对Java后端开发与架构。 更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可能很著名,但干涩枯燥,喋喋不休的把你带回到大学课堂上昏昏欲睡,不...

【Web 开发须知】WebSocket 开发指南 - 前端 - 掘金
春节假期看了一下 websocket, 做了一篇笔记, 原文链接: https://oolap.com/websocket     WebSocket 由来已久, 常用于 "服务器推" 场景。最近开始学习 WebSock...

ajax-hook 原理解析 - 前端 - 掘金
最近github上出现了一个神器ajax-hook,它可以拦截所有ajax请求并允许修改请求数据和响应数据!实际项目中它可以用于请求添加统一签名、协议自动解析、接口调用统计等。本文主要分析其源码实现,抛砖引玉了。 ...

使用第三方框架解耦的一种思路 - Android - 掘金
前言: 能在平时的coding中,使用到设计模式,是一件非常细节的事,但恰恰也是走向高阶的开端,同样一段代码,不同的人写,水平是不一样的。今天是由gdutxiaoxu投稿本公众号授权发布的,gdutxiaoxu之前写的《记一次360面试》也是在本公众号独家发布...

redis从入门到精通 - 掘金
解压后的安装 [root@server1 redis-3.0.5]# make 指定安装目录: [root@server1 redis-3.0.5]# make PREFIX=/usr/local/redis install进入/usr/local/redis...

JVM 指令集整理 - Android - 掘金
指令码 助记符 说明 ...

(译) 来自 Serenity 的 Java 8 的一些使用技巧 - 后端 - 掘金
Java 8早在2014年就出来了,但是我仍发现有很多团队并没有尽量多的去使用其新的特性。可以说Java 8中最大的新特性就是Lambda表达式,这终于给Java世界引入了函数式编程的味道。 在这篇文章中,我想要给大家看一个简单的例子,通过这个...

原创翻译-Java 8新特性 - 掘金
前言   本篇翻译自oracle官网的JDK8 新特性,但是并不包含 JavaFx和安全方面的更新。 JAVA8中的新特性   Java平台的标准版第8版本是一个重大的发布版本。这篇文档概述了JAVA SE8 和...

消息队列之异步消息的基本概念以及ActiveMQ整合Spring的常用用法介绍 | 掘金技术征文 - 掘金
一 简介 (1)异步消息: 所谓异步消息,跟RMI远程调用、webservice调用是类似的,异步消息也是用于应用程序之间的通信。但是它们之间的区别是: RMI、Hession/Burlap、webservice等远程调用机制是同步的。也就是说,当客户端调用...

Java 8 并发教程:同步和锁 - 后端 - 掘金
原文:Java 8 Concurrency Tutorial: Synchronization and Locks译者:飞龙 协议:CC BY-NC-SA 4.0 欢迎阅读我的Java8并发教程的第二部分。这份指南将会以简单易懂的代码示例来教给你如何在Jav...

通过项目逐步深入了解Mybatis(四) - 掘金
相关阅读: 1、通过项目逐步深入了解Mybatis<一> 2、通过项目逐步深入了解Mybatis<二> 3、通过项目逐步深入了解Mybatis<三> 4、通过项目逐步深入了解Mybatis<四> 本项目所有代码及...

JVM 理解其实并不难! - Android - 掘金
我的简书同步发布:JVM理解其实并不难! 在阅读本文之前,先向大家强烈推荐一下周志明的《深入理解Java虚拟机》这本书。 前些天面试了阿里的实习生,问到关于Dalvik虚拟机能不能执行class文件,我当时的回答是不能,但是它执行的是class转换的de...

Java Web 技术总结系列 - 后端 - 掘金
近期收到几位读者的来信,说之前写的一个Java Web系列反响不错,但是一篇一盘翻着看不太方便,今天我将这些文章整理下做个索引的目录,后期有新的文章加入也会更新这篇目录。这些文章的内容来自我的日常工作,在解决问题的时候遇到值得记录的知识点,就会暂时记录下来,并...

最近 5 年 133 个 Java 面试问题列表 - 后端 - 掘金
Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入。 在我初入职场的时候,类似于 Vector 与 Array 的区别...

Java 面试知识点总结 - Android - 掘金
本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺(阅读本文需要有一定的Java基础)。本文的问题列表来自于http://www.nowcoder.com...

Java面试题收集 - 掘金
不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题。 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Client/Server),客户端/服务端,桌面应用程序 2...

要换工作? 来看看面试题吧 - Android - 掘金
前几天,有朋友去面试之前问我关于后端架构相关的问题,但奈于我去年更多的工作是在移动SDK开发上,对此有所遗忘,实属无奈,后面准备总结下. 今天要谈的主题是关于求职.求职是在每个技术人员的生涯中都要经历多次...

最近 5 年 133 个 Java 面试问题列表 - 后端 - 掘金
来源:https://github.com/YHGui/easy-job/blob/master/面试题/133个Java常见面试题.mdJava 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别(Str...

深入分析 Java Web 中的中文编码问题 - 后端 - 掘金
深入分析 Java Web 中的中文编码问题 背景: 编码问题一直困扰着程序开发人...

阿里电面试题汇总 - 后端 - 掘金
年前意外的经历了一次阿里的电话面试,话说还没想换工作,但这位业余HR(应该是技术负责人)都没介绍工作岗位和要求,直接就约定某晚的电面时间,抱着好奇的态度被“虐”了一把。 总体感觉这位面试官问的问题非常深,基本都是系统或者原理级别的。不知道是不是代表了阿...

最全 Java NIO 系列教程 - 后端 - 掘金
Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。 Java NIO提供了与标准IO不同的IO工作方式: ...

【BetterJava】Java 编程须知:语音规范、库、特性、框架、工具和资源 - 后端 - 掘金
Style Java 传统的代码风格是被用来编写非常复杂的企业级 JavaBean。新的代码风格看起来会更加整洁,更加正确,并且更加简单。 Structs 对我们程序员来说,包装数据是最简单的事情之一。下面是传统的通过定义一个 JavaBean 的实...

干货满满的阿里巴巴 Java 开发手册 - 后端 - 掘金
阿里巴巴 Java 开发手册 阿里巴巴集团技术部首次向业界公开 Java 开发手册,总共五大章节,干货满满,大多数规约还有说明以及正、反代码实例,对于新手而言能从中学到很多知识。还有就是非常适合全公司推广,利于项目维护以及规范开发...

netty 源码分析之拆包器的奥秘 - 后端 - 掘金
这里的拆包,拆的不是肉包,不是菜包,也不是小笼包,而是数据包 为什么要粘包拆包 为什么要粘包 首先你得了解一下TCP/IP协议,在...

Java 并发:深入分析 synchronized 的实现原理 - 后端 - 掘金
原文出处: cmsblogs 记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,...

SpringBoot+Shiro 学习之数据库动态权限管理和 Redis 缓存 - 后端 - 掘金
发现问题,需找解决思路。 之前我们整合Shiro,完成了登录认证和权限管理的实现,登录认证没什么说的,需要实现AuthorizingRealm中的doGetAuthenticationInfo方法进行认证,但是我们在实现doGetAuthorizati...

使用 Spring 配置动态数据源实现读写分离 - 后端 - 掘金
最近搭建的一个项目需要实现数据源的读写分离,在这里将代码进行分享,以供参考。关键词:DataSource 、AbstractRoutingDataSource、AOP 首先是配置数据源 <...

MyBatis 在 Spring 环境下的事务管理 - 后端 - 掘金
MyBatis & Spring MyBatis的设计思想很简单,可以看做是对JDBC的一次封装,并提供强大的动态SQL映射功能。但是由于它本身也有一些缓存、事务管理等功能,所以实际使用中还是会碰到一些...

教你配置使用阿里云 Maven 库,体验秒下 jar 包的快感 - 后端 - 掘金
教你配置使用阿里云 Maven 库,体验秒下 jar 包的快感 2017-02-19 #maven #java 鉴于国内的网络环境,从默认 Maven 库下载 jar 包是非常的痛苦。 速度慢就不说了,还经常是...

通过项目逐步深入了解Mybatis(一) - 掘金
相关阅读: 1、通过项目逐步深入了解Mybatis<一> 2、通过项目逐步深入了解Mybatis<二> 3、通过项目逐步深入了解Mybatis<三> 4、通过项目逐步深入了解Mybatis<四> 本项目所有代码及...

Java:Annotation(注解)-- 原理到案例 - 后端 - 掘金
图片取自文末推荐文章 本文章涉及代码已放到github上annotation-study 1.Annotation为何而来 What:Annotation干嘛的 ...

阿里巴巴 Java 开发手册 笔记及重点 - 后端 - 掘金
编程规约 POJO 类中布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。假设定义一个 boolean 的 isSuccess 属性,它的方法 Getter 被IDE生成为 isSuccess(),RP...

Java 方向如何准备 BAT 技术面试答案 (汇总版) - 后端 - 掘金
这个主题的内容之前分三个篇幅分享过,导致网络上传播的比较分散,所以本篇做了一个汇总,同时对部分内容及答案做了修改,欢迎朋友们吐槽、转发。因为篇幅长度和时间的原因,部分答案我没有亲自总结。 1.面向对象和面向过程的区别 ...

计算机程序的思维逻辑 (83) - 并发总结 - 掘金
从65节到82节,我们用了18篇文章讨论并发,本节进行简要总结。 多线程开发有两个核心问题,一个是竞争,另一个是协作。竞争会出现线程安全问题,所以,本节首先总结线程安全的机制,然后是协作的机制。管理竞争和协作是复杂的,所以Java提供了更高层次的服务,比如并发...

译-Java内存管理白皮书 - 掘金
说明 有关java并发可以看这里:https://yuedu.baidu.com/ebook/d09e3e28854769eae009581b6bd97f192279bf23  要学习Java或者任意一门技术,我觉得最好的是从官网的资料...

思维导图学 Java 虚拟机 - 后端 - 掘金
说明 本篇文章是对周志明的《深入理解Java虚拟机》的读书笔记,思维导图使用Mindjet MindManager。曾经看到过这样一句话: 关于教育,有一个经典的定义是:把在学校里学到的东西全部忘掉,最终留下的东西。 ...

Java 内部类 - 后端 - 掘金
内部类包括 成员内部类、方法内部类、静态内部类、匿名内部类。 内部类的作用 由于内部类的实现和外部类没有关系,内部类可自由继承其他类,所以在...

40 个 Java 多线程问题总结 - 后端 - 掘金
前言 这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。 这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的...

35 个 Java 代码性能优化总结 - 后端 - 掘金
前言 代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,...

三张图彻底了解 Java 中字符串的不变性 - 阅读 - 掘金
定义一个字符串String s = "abcd";s中保存了string对象的引用。下面的箭头可以理解为“存储他的引用”。使用变量来赋值变量String s2 = s;s2保存了相同的引用值,因为他们代表同一个对象。字符串连接s = s.concat("ef"...

Java、Android 内存泄漏总结 - Android - 掘金
内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收。最近自己阅读了大量相关的文档资料,打算做个 总结 沉淀下来...

Java 并发——volatile - 后端 - 掘金
JVM内存管理 概述 volatile 是轻量级的 synchronized。volatile 作用于共享变量,具备了“锁”的特性,这是为了确保共享变量能被准确和一致性地更新,这是 volatile 的可见性。同时,它也阉割了 scn...

Java 多线程 相关概念 - 掘金
前言 本篇文章介绍一些多线程的相关的深入概念。理解后对于线程的安全性会有更深的理解。 先说一个格言,摘自Java核心技术:如果向一个变量写入值,而这个变量接下来可能会被另一个线程读取;或者一个变量读值,而这个变量可能是之前被另一个线程写入的,此时必须同步。 下...

计算机程序的思维逻辑 (77) - 异步任务执行服务 - 掘金
Java并发包提供了一套框架,大大简化了执行异步任务所需的开发,本节我们就来初步探讨这套框架。 在之前的介绍中,线程Thread既表示要执行的任务,又表示执行的机制,而这套框架引入了一个"执行服务"的概念,它将"任务的提交&quo...

Java 内存分配与回收机制 - Android - 掘金
这篇文章主要讲Java内存的分配与回收机制,主要包括Java运行时的数据区域、对象的创建、垃圾收集算法与回收策略。参考的书籍是周志明老师的《深入理解Java虚拟机》,笔者只是基于书中的内容对其总结概括并图文化。这部分内容几乎都是理解性的,为了便于理解和记忆所以...

Java 的 equals 与 hashcode 对比分析 - Android - 掘金
在阅读《Effective Java》第3章里读到了关于 equals() 和 hashcode() 的一些介绍,这两个方法是很多Java程序员容易弄混的,因此本文针对这两个方法的用法和具体实现来做一些介绍。 ...

深入理解 Java 虚拟机总结 - Android - 掘金
Java 虚拟机总结...

[Java 中字符串内存位置浅析

  • 后端 - 掘金](https://juejin.im/entry/58ca7aab61ff4b006c846197)
    Loading [Contrib]/a11y/accessibility-menu.js 前言 之前写过一篇关于JVM内存区域划分的文章,但是昨天接到蚂蚁金服的面试,问到JVM相关的内容,解...

Java 集合框架分析 - HashMap - Android - 掘金
本篇文章主要分析一下Java集合框架中的Map部分,HashMap,该源码分析基于JDK1.8,分析工具,AndroidStudio,文章分析不足之处,还请见谅! 一、HashMap简介 基于哈希...

开发笔记之详述 JAVA 构造函数和代码块本身及其执行细节 - 后端 - 掘金
今天在JAVA的研究学习当中发现了构造函数这个神奇但是麻烦的东西, 他在给我感觉很像OC语言中的initWith..., 但是在细节上有很多的不同, 而代码块这个东西更是让我这个敲iOS的眼前一亮, 后来针对代码块这个东西的功能和执行的顺序深究了一番. ...

你了解泛型通配符与上下界吗? - Android - 掘金
在进入主题之前, 我们先简单说一下 Java 的泛型(generics)。它是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter)。声明的类型参数在使用时用具体的类型来替换。泛型最主要的应用是在JDK 5中的新集合...

Java 数据结构之 LinkedList、ArrayList 的效率分析 - Android - 掘金
前言:      在我们平常开发中难免会用到List集合来存储数据,一般都会选择ArrayList和LinkedList,以前只是大致知道ArrayList查询效率高LinkedList插入删除效率高,今天来实测一下。 先了解一下...

JVM 内存回收对象及引用分析 - 后端 - 掘金
自动垃圾回收是Java相较于C++的一个重要的特点,想了解JVM的垃圾回收机制,首先我们要知道垃圾回收是回收什么地方的垃圾,我在我的上一篇博客《JVM内存区域划分》里面有写到JVM里面的内存是怎么分布的,这里的回收主要是指对上文中提到的Java堆和方法区的内存...

JVM 内存区域划分 - 后端 - 掘金
学习Java不可避免的要学习Java虚拟机,也就是JVM,Java虚拟机规范里面规定了程序运行期间会使用到的运行时数据区,这也是JVM的内存区域划分的模型,应该可以这么理解吧。 这其中有一些是随着虚拟机的启动和退出而创建和销毁的,这些区域是线程...

Java 集合框架 源码浅析 与理解 - Android - 掘金
最近在研究java源码,就是看一看别人写好的东西,也不算是研究。知根知底的对以后的学习会有很大的帮助,我先去了解一下java集合框架,从总体上对这个组织和操作数据的数据结构有个浅显得的了解。 从网上看了很...

jvm 知识点总览 - 高级 Java 工程师面试必备 - 后端 - 掘金
在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内功。对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来取胜了,但是练到高手之后,内功就更主要了。一个内功低的人招式在奇妙也打不过一个内功高...

static 关键字相关知识点 - 后端 - 掘金
1、为什么要用static关键字? 通常来说,用new创建类的对象时,数据存储空间才被分配,方法才供外界调用。但有时我们只想为特定域分配单一存储空间,不考虑要创建多少对象或者说根本就不创建任何对象,再就是...

Java 泛型详解 - 后端 - 掘金
泛型是 Java 中一个非常重要的知识点,在 Java 集合类框架中泛型被广泛应用。本文我们将从零开始来看一下 Java 泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除。...

Java多线程干货系列—(四)volatile关键字| 掘金技术征文 - 掘金
原本地址:Java多线程干货系列—(四)volatile关键字博客地址:http://tengj.top/ 前言 今天介绍下volatile关键字,volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因...

Java 线程池的理论与实践 - 掘金
Doug Lea前段时间公司里有个项目需要进行重构,目标是提高吞吐量和可用性,在这个过程中对原有的线程模型和处理逻辑进行了修改,需要 发现有很多基础的多线程的知识已经模糊不清,如底层线程的运行情况、现有的线程池的策略和逻辑、池中线程的健康状况的监控等,这次重新...

从JDK源码角度看并发锁的优化 - 掘金
在CLH锁核心思想的影响下,JDK并发包以CLH锁作为基础而设计,其中主要是考虑到CLH锁更容易实现取消与超时功能。比起原来的CLH锁已经做了很大的改造,主要从两方面进行了改造:节点的结构与节点等待机制。 在结构上引入了头结点和尾节点,他们分别指向队列的头和尾...

Java 基础与提高干货系列—Java 反射机制 | 掘金技术征文 - 掘金
原本地址:Java基础与提高干货系列——Java反射机制博客地址:http://tengj.top/ 前言 今天介绍下Java的反射机制,以前我们获取一个类的实例都是使用new一个实例出来。那样太low了,今天跟我一起来学习学习一种更加高大上的方式来实现。 ...

Java 多线程干货系列—(一)Java 多线程基础 | 掘金技术征文 - 掘金
原本地址:Java多线程干货系列—(一)Java多线程基础博客地址:http://tengj.top/ 前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧。 正...

计算机程序的思维逻辑 (84) - 反射 - 掘金
上节介绍完了并发,从本节开始,我们来探讨Java中的一些动态特性,包括反射、类加载器、注解和动态代理等。利用这些特性,可以以优雅的方式实现一些灵活和通用的功能,经常用于各种框架、库和系统程序中,比如: 在63节介绍的实用序列化库Jackson,利用反射和注解...

Tip-关于JVM和Hotspot,你也许有这么几个容易晕的问题 - 掘金
1.JVM的结构到底有哪些?        快速过一遍JVM的内存结构,JVM中的内存分为5个虚拟的区域: 堆 ▪ 你的Java程序中所分配的每一个对象都需要存储在内存里。堆是这些实例化的对象所存储的地方。...

计算机程序的思维逻辑 (82) - 理解 ThreadLocal - 掘金
本节,我们来探讨一个特殊的概念,线程本地变量,在Java中的实现是类ThreadLocal,它是什么?有什么用?实现原理是什么?让我们接下来逐步探讨。 基本概念和用法 线程本地变量是说,每个线程都有同一个变量的独有拷贝,这个概念听上去比较难以理解,我们先直接来...

计算机程序的思维逻辑 (83) - 并发总结 - 掘金
从65节到82节,我们用了18篇文章讨论并发,本节进行简要总结。 多线程开发有两个核心问题,一个是竞争,另一个是协作。竞争会出现线程安全问题,所以,本节首先总结线程安全的机制,然后是协作的机制。管理竞争和协作是复杂的,所以Java提供了更高层次的服务,比如并发...

译-Java内存管理白皮书 - 掘金
说明 有关java并发可以看这里:https://yuedu.baidu.com/ebook/d09e3e28854769eae009581b6bd97f192279bf23  要学习Java或者任意一门技术,我觉得最好的是从官网的资料...

从JDK源码角度看并发竞争的超时 - 掘金
JDK中的并发框架提供的另外一个优秀机制是锁获取超时的支持,当大量线程对某一锁竞争时可能导致某些线程在很长一段时间都获取不了锁,在某些场景下可能希望如果线程在一段时间内不能成功获取锁就取消对该锁的等待以提高性能,这时就需要用到超时机制。在JDK1.5之前并没有...

计算机程序的思维逻辑 (81) - 并发同步协作工具 - 掘金
我们在67节和68节实现了线程的一些基本协作机制,那是利用基本的wait/notify实现的,我们提到,Java并发包中有一些专门的同步工具类,本节,我们就来探讨它们。 我们要探讨的工具类包括: 读写锁ReentrantReadWriteLock 信号量Se...

计算机程序的思维逻辑 (79) - 方便的 CompletionService - 掘金
上节,我们提到,在异步任务程序中,一种常见的场景是,主线程提交多个异步任务,然后希望有任务完成就处理结果,并且按任务完成顺序逐个处理,对于这种场景,Java并发包提供了一个方便的方法,使用CompletionService,这是一个接口,它的实现类是Execu...

计算机程序的思维逻辑 (64) - 常见文件类型处理: 属性文件 / CSV/EXCEL/HTML / 压缩文件 - 掘金
对于处理文件,我们介绍了流的方式,57节介绍了字节流,58节介绍了字符流,同时,也介绍了比较底层的操作文件的方式,60节介绍了随机读写文件,61节介绍了内存映射文件,我们也介绍了对象的序列化/反序列化机制,62节介绍了Java标准的序列化,63节介绍了如何用J...

计算机程序的思维逻辑 (49) - 剖析 LinkedHashMap - 掘金
之前我们介绍了Map接口的两个实现类HashMap和TreeMap,本节来介绍另一个实现类LinkedHashMap。它是HashMap的子类,但可以保持元素按插入或访问有序,这与TreeMap按键排序不同。 按插入有序容易理解,按访问有序是什么意思呢?这两个...

如何阅读JAVA 字节码(一) - 掘金
  在阅读JAVA字节码以前,需要回忆一下JVM的结构:  Java字节码的信息主要在Java栈中间体现,下图来自网络,描述了java栈的基本结构:  值得注意的是方法区,在Java虚拟机...

详细深入分析 Java ClassLoader 工作机制 - 掘金
申明:本文首发于 详细深入分析 ClassLoader 工作机制 ,如有转载,请务必注明原出处即可,谢谢配合。 详细深入分析 Java ClassLoader 工作机制 什么是 ClassLoader ? 大家都知道,当我们写好一个 Java 程序之后,不...

Java IO流学习超详细总结(图文并茂) - 掘金
Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 I...

JVM(一)——Java 运行时的数据区域 - 掘金
JVM(一)——Java 运行时的数据区域 程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。 通俗地讲,线程执行的任务在计算机语言中,被当做是一条条的指令。...

JVM(五)——类的加载机制 - 掘金
JVM(五)——类的加载机制 概述 如篇首图所示,Class 文件被 JVM 加载至 JVM内存,在内存中验证、解析、初始化之后,形成可以被 JVM 直接使用的 Java类型。这就是类加载的简要过程。类的加载过程是在 Java程序运行期间完成,虽然会损耗一...

JVM(六)——GC 算法 - 掘金
标记-清除法JVM(六)——GC 算法 概述 GC 是 JVM 自带的功能,它能够自动回收对象,清理内存,这是 Java 语言的一大优势,但是GC绝不仅伴随着Java,相反,GC历史比Java更悠久。关于GC,我认为有四个问题需要解决: 为什么了解 GC...

Java 多线程 相关概念 - 掘金
前言 本篇文章介绍一些多线程的相关的深入概念。理解后对于线程的安全性会有更深的理解。 先说一个格言,摘自Java核心技术:如果向一个变量写入值,而这个变量接下来可能会被另一个线程读取;或者一个变量读值,而这个变量可能是之前被另一个线程写入的,此时必须同步。 下...

Android 面试知识库 - Android - 掘金
LearningNotes 第一部分: Android(安卓) Android基础知识 Android内存泄漏总结 Handler内存泄漏分析及解决 Handler、Looper、Message、MessageQueue基础流程分析 Androi...

java 数据结构与算法之树基本概念及二叉树(BinaryTree)的设计与实现 - zejian 的博客 - 博客频道 - CSDN.NET - Android - 掘金
【版权申明】未经博主同意,不允许转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/53727333 出自【zejian的博客】 关联文章: java数据结构...

2016 年末,腾讯,百度,华为,搜狗和滴滴面试题汇总 - Android - 掘金
前言:前一段时间和大家交流,据反馈现在Android岗位也没有以前那么多了,当然这不意味着饱和,只是市场更趋于合理一些,就像深圳房价一样,以前破天慌的涨,新政出来后,房价慢慢趋向合理一样。Android还有有很多机会的。最近结合一些面试的同学(包含社招和校招)...

最近 5 年 133 个 Java 面试问题列表 - 后端 - 掘金
Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入。 在我初入职场的时候,类似于 Vector 与 Array 的区别...

查找算法之顺序、二分、二叉搜索树、红黑树 详细比较总结 - Android - 掘金
前言一般用符号表来储存键值对,就好像字典那样,通过索引来查找值,若键重复则覆盖值。我们能希望找到一种高效的查找算法使在平均情况和最差情况下,时间复杂度都能达到O(logn)。下面会逐步介绍四种算法,最终达到我们的目的。 顺序查找用链表实现,无法索引数据,必须遍...

Java 工程师成神之路 - 后端 - 掘金
针对本文,博主最近在写《成神之路系列文章》 ,分章分节介绍所有知识点。欢迎关注。一、基础篇1.1 JVM1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收http://www.jcp.org/en/jsr/detail?id=133ht...

Java 中的多线程你只要看这一篇就够了 - Android - 掘金
引 如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角...

找女朋友之简单工厂模式,工厂模式,抽象工厂模式 - Android - 掘金
本文GitHub地址 一, 简单工厂模式: 突然有一天,在梦里拥有了阿拉丁神灯. 灯神说: "我可以给你创造一个女朋友哦" 这时候我的心里...嘿嘿嘿... "但是只能满足你一个地理条件,目前只有三个选项: 四川, 河北, 山东. 你挑一个? " 灯神又...

Android 优化 (一) Java 代码优化 - Android - 掘金
性能优化总纲: 大概会花一个月左右的时间出7-8个专题来分享一下在工作和学习中积累下来的android性能优化经验。 希望大家会持续关注。 现在是专题一:java代码优化 但这也仅仅是为大家提供一些思路与较为全面的总结,...

JAVA 之旅(三十五)——完结篇,终于把 JAVA 写完了,真感概呐! - 刘桂林的博客 - 博客频道 - CSDN.NET - Android - 掘金
这篇博文只是用来水经验的,写这个系列是因为我自己的java本身也不是特别好,所以重温了一下,但是手比较痒于是就写出了这三十多篇博客了,而且收到的好评也不错,于是就一直坚持了下来,非常感谢各位小伙伴哦! JAVA之旅(一)——基本常识,JAVA概念...

一道在知乎很火的 Java 题——如何输出 ab - Android - 掘金
这是一个源自知乎的话题,原贴链接:一道百度的面试题,有大神会嘛? 虽然我不是大神,但我也点进去看了一下,思考了一会之后有了一些思路,然后去看其它人的答案的时候果然全都已经被各路大神们先想到并贴出来了,所以我就不去凑热闹写重复答案了,整理一下网友们的智慧在这里...

面试总结 - Java 基础 (一) - Android - 掘金
我的博客我的博客:面试总结-Java基础(一) 之前学习Java基础的时候做的一些笔记,稍微整理了一下,也方便以后看。不过这里都是一些较为基础的Java知识,后期有时间,会针对里面的泛型,多线程,算法,nio 等模块进行更深入的解析。 如果有写错的地方...

Java 常见笔面试题 - Android - 掘金
2013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《Java面试大全》进行了全面的修订并重新发布在我的CSDN博...

Socket,你需要知道的事儿 - 掘金
what is socket socket作为一种抽象层,应用程序通过它来发送和接收数据,使用socket可以将应用程序与处于同一网络中的其他应用程序进行通信交互。简而言之,socket提供了应用程序内部与外界通信的端口以及为通信双方提供了数据传输的通道。 对...

剑指 offer—java 实现版本 - Android - 掘金
剑指offer java版实现 Word版和Pdf版: https://github.com/xurui1995/Sword-pointing-to-offer/tree/master/Word%EF%BC%8CPdf 所有代码经过本人实现并通过,实...

Java 面试知识点总结 - Android - 掘金
本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺(阅读本文需要有一定的Java基础)。本文的问题列表来自于http://www.nowcoder.com...

集成 React Native 到现有的 Android 项目( Mac, Windows 通用版 ) - 掘金
原文链接:http://motalks.cn/2016/10/26/React_Native_Integration_With_Existing_Apps/转载请注明来源。 由于公司的 Win 7 系统的台式机性能比较好,所以我又在 Windows 系统上又...

一个小时打造新闻 APP - Android - 掘金
前言 作为一个新手,学完基础总想做点什么东西出来。于是我试着去模仿那些优秀的开源作品。模仿作品:LookLook开源项目经过一些波折和学习,写下模仿过程。 实际上我花了大概三天才弄懂所有的东西,不过有了经验确实可以在一个小时里完成。 使用框架: rxjava...

JVM 理解其实并不难! - Android - 掘金
我的简书同步发布:JVM理解其实并不难! 在阅读本文之前,先向大家强烈推荐一下周志明的《深入理解Java虚拟机》这本书。 前些天面试了阿里的实习生,问到关于Dalvik虚拟机能不能执行class文件,我当时的回答是不能,但是它执行的是class转换的de...

一个单例模式就能考这么多问题,你知道么? - Android - 掘金
@(设计模式) 类图 简介 单例模式,可以说是设计模式中最简单的模式之一了,因为它不是用来解耦合用的,而是为了让整个系统有且只有一个这样的对象。为什么要只有一个呢??如果有些对象对象非常大,我需要保证内存中只存在一个;如果我希望做一些控制,只能由...

最近 5 年 133 个 Java 面试问题列表 - 后端 - 掘金
来源:https://github.com/YHGui/easy-job/blob/master/面试题/133个Java常见面试题.mdJava 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别(Str...

工具类之RegexUtils(正则工具类) - Android - 掘金
正则表达式,相信接触过编程的人都知道,但是大部分人应该是每次用的时候现找,但对其语法应该只是一知半解,如果乘客们想要更好地了解正则,那么老司机也可以再另起一篇介绍正则中比较重要的几个知识点。好啦,本次是直接带给你们福利的,常用正则相关的应该都囊括在本工具类了,...

Java 中创建对象的 5 种方式 - 后端 - 掘金
作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象。然而这里有很多创建对象的方法,我们会在这篇文章中学到。 Java中有5种创建对象的方式,下面给出它们的例子还有它们的字节码 如果你运行了末尾的的程序,你会发...

Java 核心技术点之泛型 - Android - 掘金
Why ——引入泛型机制的原因 假如我们想要实现一个String数组,并且要求它可以动态改变大小,这时我们都会想到用ArrayList来聚合String对象。然而,过了一阵,我们想要实现一个大小可以改变的Date对象数组,这时我们当然希望能够重用之前写过的那个...

java 性能优化:35 个小细节,让你提升 java 代码的运行效率 - 后端 - 掘金
文章来源:http://blog.csdn.net/richard_jason/article/details/53004974作者:Richard_Jason代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行...

最近 5 年 133 个 Java 面试问题列表 - 后端 - 掘金
来源:https://github.com/YHGui/easy-job/blob/master/面试题/133个Java常见面试题.mdJava 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别(Str...

泛型详解 高级进阶 - Android - 掘金
前言:被温水煮惯了,梦想的东西总是不敢于尝试,失败了又怎样,最多从头来过。相关文章:1、《夯实JAVA基本之一 —— 泛型详解(1):基本使用》2、《夯实JAVA基本之一——泛型详解(2):高级进阶》3、《夯实JAVA基本之二 —— 反射(1):基本类周边信息...

java 多线程核心技术梳理 (附源码) - 后端 - 掘金
本文对多线程基础知识进行梳理,主要包括多线程的基本使用,对象及变量的并发访问,线程间通信,lock的使用,定时器,单例模式,以及线程状态与线程组。 写在前面 花了一周时间阅读《java多线程编程核心技术》(高洪岩 著),本文算是此书的整理归纳,书中几乎所有示例...

JavaEE 要懂的小事:图解 Http 协议 - 后端 - 掘金
问:什么是 HTTP? 答:HTTP 是一个客户端和服务器端请求和响应的标准 TCP。其实建立在 TCP 之上的。...

java 并发编程 --Runnable Callable 及 Future - 后端 - 掘金
1.Runnable Runnable是个接口,使用很简单: 1. 实现该接口并重写run方法 2. 利用该类的对象创建线程 3. 线程启动时就会自动调用该对象的run方法 通常在开发中结合ExecutorService使用,将任务的提交与任务的执行解耦开,同...

从头到尾带你玩转注解 - Android - 掘金
前面写了Android 开发:由模块化到组件化(一),很多小伙伴来问怎么没有Demo啊?之所以没有立刻放demo的原因在还有许多技术点没说完. 今天我们就来细细评味Java当中Annotation,也就是...

一个事半功倍的 Java 反射库 - Android - 掘金
在Java和Android中,我们常常会使用反射来达到一些兼容的目的。Java原生提供的反射很是麻烦,使用起来很是不方便。比如我们想要调UserManager的静态方法get,使用原生的实现如下 try { final Method m = ...

Spring Boot 揭秘与实战(六) 消息队列篇 - RabbitMQ - 掘金
本文,讲解 Spring Boot 如何集成 RabbitMQ,实现消息队列。 博客地址:http://blog.720ui.com/ 什么是 RabitMQ RabbitMQ 是一个在 AMQP 基础上完整的,可复用的企业消息系统。 关于 RabbitMQ...

Java 并发编程:线程池的使用 - 后端 - 掘金
在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有...

Java - 注解详解 - Android - 掘金
注解-Java使用篇 背景 在之前的Rxjava+ReTrofit+okHttp深...

死磕 Java 并发 - 深入分析 synchronized 的实现原理 - 后端 - 掘金
记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着我们学习的进行我们知道sy...

我的 Java 后端书架 - 后端 - 掘金
我的Java后端书架 1月前 5079 本书架主要针对Java后端开发与架构。 更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可能很著名,但干涩枯燥,喋喋不休的把你带回到大学课堂上昏昏欲睡,不...

面试的角度诠释 Java 工程师(二) - 后端 - 掘金
续言: 相信每一位简书的作者,都会有我这样的思考:怎么写好一篇文章?或者怎么写好一篇技术类的文章?我就先说说我的感悟吧,写文章其实和写程序是一样的。为什么我会说它们是一样的?简单思考一下...... ...

面试的角度诠释 Java 工程师(一) - 后端 - 掘金
前言: 我相信每一个程序员都是为了生活而努力着的。很多人因为兴趣,从此踏上了这条‘烧脑大行动’的金桥;也有很多人因为梦想和执着,奋不顾身融入这个职业;还有很多人因为被现实逼得太无奈,不得不为自己、为家人、为未来谋这么一条坎坷的路...

Java 线程面试题 Top 50 - Android - 掘金
本文由 ImportNew - 李 广 翻译自 javarevisited。欢迎加入 翻译小组。转载请见文末要求。 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企...

jvm 知识点总览 - 高级 Java 工程师面试必备 - 后端 - 掘金
在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内功。对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来取胜了,但是练到高手之后,内功就更主要了。一个内功低的人招式在奇妙也打不过一个内功高...

Java Jvm 垃圾回收与类加载相关面试知识总结 - 后端 - 掘金
(1)内存模型以及分区,需要详细到每个区放什么。 堆:Java虚拟机管理内存中最大的一块,线程共享区域。所有对象实例和数组都在堆上分配内存空间。 栈...

重拾后端之Spring Boot(四):使用JWT和Spring Security保护REST API - 掘金
重拾后端之Spring Boot(一):REST API的搭建可以这样简单重拾后端之Spring Boot(二):MongoDb的无缝集成重拾后端之Spring Boot(三):找回熟悉的Controller,Service重拾后端之Spring Boot(四...

几种任务调度的 Java 实现方法与比较 - 后端 - 掘金
前言 任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。本文由浅入深介绍四种任务调度的 Java 实现: Timer ScheduledExecutor 开源工具包 Quartz 开源工具包 JCronTa...

一看你就懂,超详细 java 中的 ClassLoader 详解 - Android - 掘金
本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 ClassLoader翻译过来就是类加载器,普通的java开发者其实用到的不多,但对于某些框架开发者来说却非常常见。理解ClassLoa...

后端开发面试题 - 汇聚 - 后端 - 掘金
说明 这篇文章翻译自一位外国友人的关于面试后端程序员的文章,我比较喜爱这篇文章。一是因为它极大的拓宽了我的视角,另一方面是其中的一些问题非常具有启发性。不仅对于面试者,对于面试官来说也是个不错的参考。于是迫不及待的翻译了一下,给各位看官做个参考。 ...

Spring boot 那些事之 RESRful API 权限控制 - 后端 - 掘金
Spring Boot,支持约定优于配置,让开发人员尽快启动并运行项目。针对 Spring Boot 的学习和总结准备写系列文章。代码共享在【springboot-learning-example】,spring boot 实践学习案例,是 spring bo...

各大公司 Java 后端开发面试题总结 - 后端 - 掘金
ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它...

Java 方向如何准备 BAT 技术面试答案 (汇总版) - 后端 - 掘金
这个主题的内容之前分三个篇幅分享过,导致网络上传播的比较分散,所以本篇做了一个汇总,同时对部分内容及答案做了修改,欢迎朋友们吐槽、转发。因为篇幅长度和时间的原因,部分答案我没有亲自总结。 1.面向对象和面向过程的区别 ...

Java面试重难点剖析(不断更新) - 掘金
1、高并发访问数据库优化方法 2、 java finalize方法总结、GC执行finalize的过程 3、简单理解Socket及TCP/IP、Http、Socket的区别 4、 java之yield(),sleep(),wait()区别详解-备忘笔记 5、线...

JavaEE 要懂的小事:图解 Http 协议 - 后端 - 掘金
问:什么是 HTTP? 答:HTTP 是一个客户端和服务器端请求和响应的标准 TCP。其实建立在 TCP 之上的。...

Mysql常用SQL语句集锦 | 掘金技术征文 - 掘金
基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day from table_name";//int 时间戳类型 $sql = "select from_unixt...

MySQL 的初次见面礼基础实战篇 - zejian 的博客 - 博客频道 - CSDN.NET - 后端 - 掘金
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/61614366 出自【zejian的博客】 ...

一个小时学会 MySQL 数据库 - 工具资源 - 掘金
随着移动互联网的结束与人工智能的到来大数据变成越来越重要,下一个成功者应该是拥有海量数据的,数据与数据库你应该知道。 一、数据库概要 数据库(Database)是存储与管理数据的软件系统,就像一个存入数据的物流仓库。 在商业领域,信息就意味着商机,取得信息的...

【BetterJava】Java 编程须知:语音规范、库、特性、框架、工具和资源 - 后端 - 掘金
Style Java 传统的代码风格是被用来编写非常复杂的企业级 JavaBean。新的代码风格看起来会更加整洁,更加正确,并且更加简单。 Structs 对我们程序员来说,包装数据是最简单的事情之一。下面是传统的通过定义一个 JavaBean 的实...

可以免费自学编程的 12 个网站 - 工具资源 - 掘金
很多人包括一些企业家,和市场营销人员都认为学习编程对一个人走向成功十分有帮助。在过去的一年里,我一直在学习编程。它有助我成为一个更好的创业者,我甚至可以提供一些帮助,当我的团队需要解决一些bug的时候。现在,如果你想学编程的话,这12个网站可以帮助你,它们都提...

JAXenter:最全的Java资讯站点 - 工具资源 - 掘金
JAXenter向读者提供Java的新闻、Java的技术文章、顶尖工程师关于软件开发与设计的视频,为读者提供广泛的讨论话题。JAXenter致力于提供最全、最新的Java资讯。 查看图片 主要板块 News Articles Videos Jax Magaz...

常用 Git 命令清单 - 工具资源 - 掘金
我每天使用 Git ,但是很多命令记不住。 ...

20 个非常有用的 Java 程序片段 - 后端 - 掘金
下面是20个非常有用的Java程序片段,希望能对你有用。 1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric string int i = Integer.par...

常用的 Java 代码汇总 - 后端 - 掘金

  1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric string int i = Integer.parseInt(a); //numeric string to ...

Java 基础思维导图,让 Java 不再难懂 - 工具资源 - 掘金
思维导图的好处 最近看了一些文章的思维导图,发现思维导图真是个强大的工具。了解了思维导图的作用之后,觉得把它运用到java上应该是个不错的想法,这样回顾知识点的时候一目了然,快速知道自己的短板。 思维导图不仅仅只有简单明了这个好处,它还能加深人对主题的印象和...

Java 多线程 相关概念 - 掘金
前言 本篇文章介绍一些多线程的相关的深入概念。理解后对于线程的安全性会有更深的理解。 先说一个格言,摘自Java核心技术:如果向一个变量写入值,而这个变量接下来可能会被另一个线程读取;或者一个变量读值,而这个变量可能是之前被另一个线程写入的,此时必须同步。 下...

教你在 APP 中嵌入翻译功能,不借助第三方软件 - Android - 掘金
对于翻译软件大家都应该使用过,有没有想到将翻译功能直接嵌入到自己的APP中,比如聊天界面,翻译几句话的功能。正好项目由此需求,看了看有道对外提供的接口,原来很简单。 一、效果图 ...

Java 中 Emoji 的正则表达式 - 掘金
一、emoji 的范围 查阅维基百科中 emoji 的说明 1. 杂项符号及图形 杂项符号及图形一共有768个字符,范围为: U+1F300 ~ U+1F5FF,在 Java 中正则表达式为: "[\uD83C\uDF00-\uD83D\uDDFF]"...

深入理解 Java 类加载机制 - 后端 - 掘金
前言 在上一次文章「一文让你明白Java字节码」中,我们了解了java字节码的解析过程...

详解 Java 中的注解 - 后端 - 掘金
在 Java 中,注解 (Annotation) 引入始于 Java5,用来描述 Java 代码的元信息,通常情况下注解不会直接影响代码的执行,尽管有些注解可以用来做到影响代码执行。...

我的 Java 后端书架 - 后端 - 掘金
我的Java后端书架 1月前 5079 本书架主要针对Java后端开发与架构。 更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可能很著名,但干涩枯燥,喋喋不休的把你带回到大学课堂上昏昏欲睡,不...

【译】2017 年你不能错过的 Java 类库 - 后端 - 掘金
各位读者好, 这篇文章是在我看过 Andres Almiray 的一篇介绍文后,整理出来的。 因为内容非常好,我便将它整理成参考列表分享给大家, 同时附上各个库的特性简介和示例。 请欣赏! Gui...

Java 语法清单 - 后端 - 掘金
Java 语法清单翻译自 egek92 的 JavaCheatSheet,从属于笔者的 Java 入门与实践系列。时间仓促,笔者只是简单翻译了些标题与内容整理,支持原作者请前往原文点赞。需要注意的是,此文在 Reddit 上也引起了广泛的讨论,此文讲解的语法要...

各大公司 Java 后端开发面试题总结 - 后端 - 掘金
ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它...

你真的了解 volatile 关键字吗? - Android - 掘金
volatile关键字经常在并发编程中使用,其特性是保证可见性以及有序性,但是关于volatile的使用仍然要小心,这需要明白volatile关键字的特性及实现的原理,这也是本篇文章的主要内容。 ...

Java 的 equals 与 hashcode 对比分析 - Android - 掘金
在阅读《Effective Java》第3章里读到了关于 equals() 和 hashcode() 的一些介绍,这两个方法是很多Java程序员容易弄混的,因此本文针对这两个方法的用法和具体实现来做一些介绍。 ...

Java 泛型进阶 - Android - 掘金
擦除 在泛型代码内部,无法获得任何有关泛型参数类型的信息。 例子1: //这个例子表明编译过程中并没有根据参数生成新的类型 public class Main2 { public static void main(String[] args) { ...

Java 中的多线程你只要看这一篇就够了 - Android - 掘金
引 如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角...

一文让你明白 Java 字节码 - 后端 - 掘金
Intro 在这,我们相互学习,共同成长,分享使我们并不孤单. BRVAH@www.recyclerview.org ...

数据结构与算法 /leetcode/lintcode 题解 - 工具资源 - 掘金
数据结构与算法/leetcode/lintcode题解 English via Data Structure and Algorithm notes 简体中文请戳 数据结构与算法/leetcode/lintcode题解 繁體中文請瀏覽 資料結構與演算法...

Blade - 一款简洁优雅的 Java Web 框架 - 后端 - 掘金
新一代JavaWeb框架,不依赖更多的库,摆脱SSH的臃肿,模块化设计,使用起来更轻便! 代码简洁、结构清晰,不足100KB源代码,写更少的代码快速开发! ...

自己编写Java Web框架:Takes框架的Web App架构 - 前端 - 掘金
我用过Servlets、JSP、JAX-RS、 Spring框架、Play框架、带Facelets的JSF以及Spark Framework。在我看来,这些框架并没有很好地实现面向对象设计。它们充斥着静态方法、未经测试的数据结构以及不够美观的解决方式。因此一个...

Pippo:Java小型开源Web微框架 - 工具资源 - 掘金
Pippo是一个(基于Apache协议)的Java开源Web微框架,依赖关系精简、上手速度很快。这个项目的主要目的是用Java创建一个易于使用和修改的Web微框架。Pippo可用于中小型应用程序,以及其它基于微服务架构的应用程序。我们信奉大道至简,在开发中时刻...

最近 5 年 133 个 Java 面试问题列表 - 后端 - 掘金
Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入。 在我初入职场的时候,类似于 Vector 与 Array 的区别...

重新认识 java(三) —— 面向对象之继承! - Android - 掘金
学习一个新知识的第一步,就是要知道它是什么,然后要知道为什么要用它,最后要知道如何使用它。这篇文章,我们重新认识一下Java中的继承。 ...

Java 线程面试题 Top 50 - Android - 掘金
本文由 ImportNew - 李 广 翻译自 javarevisited。欢迎加入 翻译小组。转载请见文末要求。 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企...

最全 Java NIO 系列教程 - 后端 - 掘金
Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。 Java NIO提供了与标准IO不同的IO工作方式: ...

如何实现一个Java Class解析器 - 掘金
最近在写一个私人项目,名字叫做ClassAnalyzer,ClassAnalyzer的目的是能让我们对Java Class文件的设计与结构能够有一个深入的理解。主体框架与基本功能已经完成,还有一些细节功能日后再增加。实际上JDK已经提供了命令行工具javap来...

我的 Java 后端书架 - 后端 - 掘金
我的Java后端书架 1月前 5079 本书架主要针对Java后端开发与架构。 更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可能很著名,但干涩枯燥,喋喋不休的把你带回到大学课堂上昏昏欲睡,不...

阿里巴巴集团 Java 代码规约介绍 - 阅读 - 掘金
        众所周知,制订交通法规表面上是要限制行车权,实际上是保障公众的人身安全。试想如果没有限速,没有红绿灯,没有规定靠右行驶,谁还敢上路。同理,对软件来说,适当的规范和标准绝不是消灭代码内容的创造性、优雅性,而...

JVM 源码分析之新生代 DefNewGeneration 的实现 - Android - 掘金
简书 占小狼转载请注明原创出处,谢谢! 看得越多,懂的越少,还年轻,多学习! 接着上文《JVM源码分析之堆内存的初始化》,本文对新生代的实现进行分析,在JVM内部...

一行代码给你的控件加上小徽章 - Android - 掘金
一行代码给你的控件加上徽章(Badge) 不废话,先上图 BadgeView 其实在开发众多APP中,...

干货满满的阿里巴巴 Java 开发手册 - 后端 - 掘金
阿里巴巴 Java 开发手册 阿里巴巴集团技术部首次向业界公开 Java 开发手册,总共五大章节,干货满满,大多数规约还有说明以及正、反代码实例,对于新手而言能从中学到很多知识。还有就是非常适合全公司推广,利于项目维护以及规范开发...

图解 JVM 字节码执行引擎 - Android - 掘金
我们都知道,在当前的Java中(1.0)之后,编译器讲源代码转成字节码,那么字节码如何被执行的呢?这就涉及到了JVM的字节码执行引擎,执行引擎负责具体的代码调用及执行过程。就目前而言,所有的执行引擎的基本一致: ...

RecyclerView 优秀文集 - Android - 掘金
收集RecyclerView优秀文章,持续更新欢迎提交pr,推荐star。 入门篇 还在用ListView? RecyclerView使用介绍 深入浅出RecyclerView 原理分析 RecyclerView剖析 RecyclerView源码分析 ...

一个事半功倍的 Java 反射库 - Android - 掘金
在Java和Android中,我们常常会使用反射来达到一些兼容的目的。Java原生提供的反射很是麻烦,使用起来很是不方便。比如我们想要调UserManager的静态方法get,使用原生的实现如下 try { final Method m = ...

从 JDK 源码角度看 java 并发线程的中断 - 后端 - 掘金
        线程的定义给我们提供了并发执行多个任务的方式,大多数情况下我们会让每个任务都自行执行结束,这样能保证事务的一致性,但是有时我们希望在任务执行中取消任务,使线程停止。在Java中要让线程安全、快速、可靠地停...

java 之反射技术及其应用 - 后端 - 掘金
翻阅了很多资料想查看一个比较通俗易懂的关于java反射机制的理解,但是想要从概念中去理解一项技术,可能有点困难,所以先将理论型知识贴出来,后面,慢慢来理解。 反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能...

通俗易懂权限管理模块设计 - Java - 后端 - 掘金
最近一直在做CMS系统,发现一些内容其实都是重复出现的,例如权限管理模块。权限管理模块就是为了管理用户是否有权利访问某个权限,如果不能则拒绝访问。其实Java中已经有很成熟的权限管理框架,例如 S...

JAVA 中的网路编程 - Android - 掘金
1.JAVA中的网路编程 这篇文章,是关于JAVA网络编程扯蛋,如果蛋疼了呢?就继续往下看吧! 2.网络模型 关于java的网络编程,其实也没什么的,第一个先扯淡的是这个网络模型:OSI参考模型&TCP/IP参考模型,结构如下图所示: 通常来讲,这...

Java Worker 设计模式 - 后端 - 掘金
Worker模式 想解决的问题 异步执行一些任务,有返回或无返回结果 使用动机 有些时候想执行一些异步任务,如异步网络通信、daemon任务,但又不想去管理这任务的生命周。这个...

Java 工程师成神之路 - 后端 - 掘金
针对本文,博主最近在写《成神之路系列文章》 ,分章分节介绍所有知识点。欢迎关注。一、基础篇1.1 JVM1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收http://www.jcp.org/en/jsr/detail?id=133ht...

Java 泛型进阶 - Android - 掘金
擦除 在泛型代码内部,无法获得任何有关泛型参数类型的信息。 例子1: //这个例子表明编译过程中并没有根据参数生成新的类型 public class Main2 { public static void main(String[] args) { ...

spring-cloud-sleuth+zipkin 追踪服务实现 (一) - 后端 - 掘金
最近在学习spring cloud构建微服务,很多大牛都提供很多入门的例子帮助我们学习,对于我们这种英语不好的码农来说,效率着实提高不少。这两天学习到追踪微服务rest服务调用链路的问题,接触到zipkin,而spring cloud也提供了spring-cl...

如何优雅地使用 Swagger 维护项目文档 - 工具资源 - 掘金
Generate your API documentation using Swagger gracefully and automatically. 概述 ...

MyBatis 从扫描 package 到 mapper 接口动态代理的实现 - 后端 - 掘金
突然想到 mybatis 的 mapper 接口没有实现类,却能在 service 层直接注入并调用其方法操作数据库,之前只是知道这么做就行,出于好奇网上找了一下答案跟着源码走了一遍。 <bean id="userMapper" class="org.m...

Java 人员正确使用 IntelliJ IDEA 的方式 | 掘金技术征文 - 掘金
原本地址:Java人员正确使用 IntelliJ IDEA的方式博客地址:http://tengj.top/ 前言 博主是Java开发人员,以前一直都用myeclipse来开发的,说实话感觉myeclipse毫无美感可言,后来经过同事介绍,认识了IDEA,一...

Dubbo 源码分析 - 后端 - 掘金
dubbo源码解析 具体内容查看相关的markdown,有问题联系紫苑,或者邮件: ziyuan@2dfire.com...

dubbo 源码分析 - 服务注册 - 后端 - 掘金
前言 对于分布式服务架构,解决服务的发现问题,引入了注册中心中间件,从而很好的解决了服务双方(消费方和提供方)的直接依赖问题。这种解耦的意义是非凡的,不仅在程序运行时保证了灵活性,在开发阶段也使得快速迭代成为了可能,甚至在运维层面也提供了非常好...

dubbo 插件化的实现分析 · - 后端 - 掘金
前言 Dubbo的插件化实现非常类似于原生的JAVA的SPI:它只是提供一种协议,并没有提供相关插件化实施的接口。用过的同学都知道,它有一种java原生的支持类:ServiceLoader,通过声明接口的实现类,在META-INF/servic...

使用 RelProxy 提高 Java 开发效率 - 工具资源 - 掘金
RelProxy 旨在通过下列两种方式提高开发效率: 可以在生产环境下修改用户代码,而不需要重新加载整个应用。 提高开发效率,避免花费过多的时间加载应用且对性能不会有影响。 两个目标都要求在你的应用中增加一些 RelProxy 代码,注册成一种典型的监听、回调...

更好的 Java - 后端 - 掘金
Java是最流行的语言之一,但是似乎没人喜欢使用它。好吧,Java仅仅是一种“还好”的编程语言。自从Java 8的面世,我决定编辑一个关于Java的列表,包括库、最佳实践以及工具让我们能更好的使用Java。 这篇文章在Github上,你可以自由的添加你所使...

构建Java Agent,而不是使用框架 - 后端 - 掘金
Java annotations自从被引入到Java之后,一直扮演着整合各种API的作用,尤其是对大型应用框架而言。在这方面,Spring和Hibernate都是Java annotation应用的好例子——仅仅需要增加几行简单的Java annotation...

Lucene 学习总结之一:全文检索的基本原理 - 后端 - 掘金
一、总论 根据http://lucene.apache.org/java/docs/index.html定义: Lucene是一个高效的,基于Java的全文检索库。 所以在了解Lucene之前要费一番工夫了解一下全文检索。 那么什么叫做全文检索呢?这要从我们生...

【腾讯 TMQ】JAVA 代码覆盖率工具 JaCoCo - 原理篇 - 工具资源 - 掘金
总目录 JAVA代码覆盖率工具JaCoCo-原理篇 1.1 覆盖率定义 1.2 JAVA覆盖率工具介绍 1.2.1 JaCoCo简述 1.2.2 JaCoCo基本概念 1.2.3 JaCoCo 原理 1.3 JaCoCo使用方式 1.3.1 Apache An...

IntelliJ IDEA 高效率配置 - 工具资源 - 掘金
IntelliJ IDEA 主要用于支持 Java、Scala、Groovy 等语言的开发工具,同时具备支持目前主流的技术和框架,擅长于企业应用、移动应用和 Web 应用的开发。 IntelliJ IDEA 官网:https://www.jetbrains.c...

[福利] 成吨提高开发效率:Intellij Shortcuts 精简子集与思维模式 - 工具资源 - 掘金
本仓库是一个经过精简的Intellij快捷键子集,并提供在线的cheatsheet快速备查表: intellij.linesh.tw。 Intellij的快捷键多而繁杂,处女座的我也由此阅读了大量的文档和资料,从官方推荐的keymap到市面能看到的大多...

Elasticsearch,为了搜索 - 后端 - 掘金
Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。 但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言...

通过项目逐步深入了解 Mybatis - 后端 - 掘金
Mybatis 和 SpringMVC 通过订单商品案例驱动 官方中文地址:http://www.mybatis.org/mybatis-3/zh/ 官方托管地址:https://github.com/mybatis/mybatis-3 本项目全部代码地...

Intellij Mybatis 插件破解教程 - 后端 - 掘金
背景 Intellij上的mybatis插件是一个十分优秀的插件,但是需要付费。在网上搜索一番之后,发现果然有破解版,遂来研究一番破解原理。 环境 操作系统:mac os 10.11.6 Intellij版本:2016.2 mybatis插件版本:2.87 ...

Dubbo 高级特性实践 - 泛化调用 - 后端 - 掘金
引言 当后端Java服务用Dubbo协议作为RPC方案的基础,但部分消费方是前端Restful的PHP服务,不能直接调用,于是在中间架设了Router服务提供统一的基于HTTP的后端调用入口。而Router调用后端Java服务就应用了Dubbo的高级特...

正确、安全地停止 SpringBoot 应用 - 后端 - 掘金
引言Spring Boot,作为Spring框架对“约定优先于配置(Convention Over Configuration)”理念的最佳实践的产物,它能帮助我们很快捷的创建出独立运行、产品级别的基于Spring框架的应用,大部分Spring Boot应用只...

Java开源博客Tale,让每一个有故事的人更好的表达想法! - 掘金
Tale Tale的英文含义为故事,我相信每个坚持写Blog的人都是有故事的;中文你叫它 塌了 也无所谓 🤣。 Tale 使用了轻量级mvc框架 Blade 开发,默认主题使用了漂亮的 pinghsu,如果觉得这个项目不错,请为它点赞支持。 演示站点:h...

2017 不能错过的 Java 库 - Android - 掘金
为了把大家从越来越多的技术水文中拯救出来,“大公司技术博客”将良心推送国内外大公司的优质干货文,如 Facebook, Google, Medium, GitHub、Hacker News、Quora(嗯,我知道很多国外的文章你点不开,或者是英文的你懒得看)等...

【Java 高手经验】我的 Java 问题排查工具单 - 后端 - 掘金
我的问题排查工具箱 前言 平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常觉得帮助很大的工具,大家一起进步。 闲话...

【译】2017 年你不能错过的 Java 类库 - 后端 - 掘金
各位读者好, 这篇文章是在我看过 Andres Almiray 的一篇介绍文后,整理出来的。 因为内容非常好,我便将它整理成参考列表分享给大家, 同时附上各个库的特性简介和示例。 请欣赏! Gui...

Java 内存区域 - 后端 - 掘金
对于 Java 程序员来说,虚拟机自带内存管理机制,不容易出现内存泄露和内存溢出问题,一旦出现内存泄露方面的问题,如果我们了解虚拟机是怎样使用内存的,将很容易的找到错误发生的原因. ...

最全 Java NIO 系列教程 - 后端 - 掘金
Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。 Java NIO提供了与标准IO不同的IO工作方式: ...

深入分析 Java I/O 的工作机制 - 后端 - 掘金
Java 的 I/O 类库的基本架构 I/O 问题是任何编程语言都无法回避的问题,可以说 I/O 问题是整个人机交互的核心问题,因为 I/O 是机器获取和交换信息的主要渠道。在当今这个数据大爆炸时代,I/O 问题尤其突出,很容易成为一个性能瓶颈。正因如此,所以...

Java 并发:深入分析 synchronized 的实现原理 - 后端 - 掘金
原文出处: cmsblogs 记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,...

干货满满的阿里巴巴 Java 开发手册 - 后端 - 掘金
阿里巴巴 Java 开发手册 阿里巴巴集团技术部首次向业界公开 Java 开发手册,总共五大章节,干货满满,大多数规约还有说明以及正、反代码实例,对于新手而言能从中学到很多知识。还有就是非常适合全公司推广,利于项目维护以及规范开发...

一个事半功倍的 Java 反射库 - Android - 掘金
在Java和Android中,我们常常会使用反射来达到一些兼容的目的。Java原生提供的反射很是麻烦,使用起来很是不方便。比如我们想要调UserManager的静态方法get,使用原生的实现如下 try { final Method m = ...

用 JAVA 二十分钟撸一个简易图片防篡改 - 工具资源 - 掘金
看到有个毕设是搞图片防篡改的,就自己撸了一个简易图片防止篡改。 原理 将图片字节生成字符串使用摘要算法加密,将加密生成的字节写到图片最后。验证时,首先读取末尾的加密字节,读取完成以后删除,再通过摘要算法加密,判断加密值与读取加密值是否相同,如果不同,则图片被篡...

红黑树深入剖析及 Java 实现 - 后端 - 掘金
红黑树是平衡二叉查找树的一种。为了深入理解红黑树,我们需要从二叉查找树开始讲起。 BST 二叉查找树(Binary Search Tree,简称BST)是一棵二叉树,它的左子节点的值比父节点的值要小,右节点的值要比父节点的值大。它的高度决定了它的查找效率。 在...

最全的数据结构解析与归纳 - 后端 - 掘金
本文对常用的数据结构:Array, ArrayList,List,IList,ICollection, Stack, Queue, HashTable, Dictionary, IQueryable, IEnumerable等进行详述。 一、Collectio...

深入理解 Java 8 Lambda(类库篇 - Streams API,Collectors 和并行) - 后端 - 掘金
关于 深入理解 Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法) ...

JVM 源码分析之 System.currentTimeMillis 及 nanoTime 原理详解 - 后端 - 掘金
概述 上周@望陶问了我一个现象很诡异的问题,说JDK7和JDK8下的System.nanoTime()输出完全不一样,而且差距还非常大,是不是两个版本里的实现不一样,之前我也没注意过这个细节,觉得非常奇怪,于是自己也在本地mac机器上马上测试了一下,得到如下输...

java读取文件 - 掘金
转载请务必注明出处,谢谢合作:java读取文件 java读取文件 以字节为单位读取文件 以字符为单位读取文件 以行为单位读取文件 随机读取文件内容 ReadFromFile.java package cn.zhisheng.io; import java...

超级灵活的 Java JSON 库 - 后端 - 掘金
不是已经有 objectMapper.readValue 了吗?为什么还需要一个新的 JSON 库呢?因为我发现下面这几个场合已有的库无法满足我的需求, 所以发明了 jsoniter (json-iterator): ...

JAVA 对象比较中的坑 - 后端 - 掘金
一、背景 本文是为了解决以下几个疑问: == 和equals的差别实现compareTo 和 equal...

通俗易懂权限管理模块设计 - Java - 后端 - 掘金
最近一直在做CMS系统,发现一些内容其实都是重复出现的,例如权限管理模块。权限管理模块就是为了管理用户是否有权利访问某个权限,如果不能则拒绝访问。其实Java中已经有很成熟的权限管理框架,例如 S...

从 JDK 源码角度看 java 并发的公平性 - 后端 - 掘金
        JAVA为简化开发者开发提供了很多并发的工具,包括各种同步器,有了JDK我们只要学会简单使用类API即可。但这并不意味着不需要探索其具体的实现机制,本文从JDK源码角度简单讲讲并发时线程竞争的公平性。 ...

从 JDK 源码角度看 java 并发的原子性如何保证 - 后端 - 掘金
        JDK源码中,在研究AQS框架时,会发现很多地方都使用了CAS操作,在并发实现中CAS操作必须具备原子性,而且是硬件级别的原子性,Java被隔离在硬件之上,明显力不从心,这时为了能直接操作 ...

java 之注解开发应用 - 后端 - 掘金
一. 注解概念知识 注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释,这些信息被保存...

Python 爬虫系列(一)初期学习爬虫的拾遗与总结 - 后端 - 掘金
最近,为了提取裁判文书网的有关信息,自己迈入Python的学习之路,写了快两周的代码,自己写这篇文章总结下踩过的坑,还有遇到一些好的资料和博客等总结下(站在巨人肩膀上,减少重复工作),以便自己后期复习和参考和、分享给大家交流学习,也欢迎大家补充些精彩内容。 ...

解锁 Redis 锁的正确姿势 - 后端 - 掘金
解锁redis锁的正确姿势 redis是php的好朋友,在php写业务过程中,有时候会使用到锁的概念,同时只能有一个人可以操作某个行为。这个时候我们就要用到锁。锁的方式有好几种,php不能在内存中用锁,不能使用zookeeper加锁,使用数据库做锁又消耗比较...

7 行 Python 的人脸识别 - 后端 - 掘金
随着去年alphago 的震撼表现,AI 再次成为科技公司的宠儿。AI涉及的领域众多,图像识别中的人脸识别是其中一个有趣的分支。百度的BFR,Face++的开放平台,汉王,讯飞等等都提供了人脸识别的API,对于老码农而言,自己写一小段代码,来看看一张图片中有几...

一篇 SSM 框架整合友好的文章(二) - 后端 - 掘金
上一篇讲述了DAO 层,mybatis实现数据库的连接,DAO层接口设计,以及mybtis和spring的整合。DAO层采用接口设计方式实现,接口和SQL实现的分离,方便维护。DAO层所负责的仅仅是接口的设计和实现,而负责的逻辑即一个或多个DAO层接口的拼接是...

一篇 SSM 框架整合友好的文章(三) - 后端 - 掘金
一.SpringMVC理论 它始终是围绕 handler、 数据模型 model、 页面view进行开发的。 ...

mysql 自连接与 join 关联操作 - 后端 - 掘金
mysql自连接 mysql有时在信息查询时需要进行对自身连接(自连接),所以我们需要为表定义别名。我们举例说明,下面是商品采购表,我们需要找到采购价格比惠惠高的所有信息。 一般情况我...

SpringBoot 动态更改任务表达式 - 后端 - 掘金
SpringBoot 实现动态 Job ,可以通过 API 动态变更 cron。 原生的 Job 实现起来很简单,只要用注解 @Scheduled(cron=xxxxxx) 来实现就可以了,但是要实现动态更改...

Spring Boot干货系列:(六)静态资源和拦截器处理 | 掘金技术征文 - 掘金
原本地址:Spring Boot干货系列:(六)静态资源和拦截器处理博客地址:http://tengj.top/ 前言 本章我们来介绍下SpringBoot对静态资源的支持以及很重要的一个类WebMvcConfigurerAdapter。 正文 前面章节我们...

java 的常见异常与错误总结 - 后端 - 掘金
算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:NegativeArrayException&nb...

多线程同步的五种方法 - 后端 - 掘金
一、引言 前几天面试,被大师虐残了,好多基础知识必须得重新拿起来啊。闲话不多说,进入正题。 二、为什么要线...

scrapy 快速入门 - 后端 - 掘金
安装Scrapy Scrapy是一个高级的Python爬虫框架,它不仅包含了爬虫的特性,还可以方便的将爬虫数据保存到csv、json等文件中。 首先我们安装Scrapy。 pip install ...

Spring Boot干货系列:(七)默认日志logback配置解析 | 掘金技术征文 - 掘金
原本地址:Spring Boot干货系列:(七)默认日志logback配置解析博客地址:http://tengj.top/ 前言 今天来介绍下Spring Boot如何配置日志logback,我刚学习的时候,是带着下面几个问题来查资料的,你呢 如何引入日志...

理解 Java 中 HashMap 的工作原理 - 后端 - 掘金
+++ date = "2016-05-25T23:10:44+08:00" description = "理解Java中HashMap的工作原理" draft = false tags = ["Hash","HashMap"] title = "理解Java...

深入分析 java 线程池的实现原理 - 后端 - 掘金
转载请注明原创出处,谢谢!简书占小狼http://www.jianshu.com/users/90ab66c248e6/latest_articles 前言 线程...

Spring Boot干货系列:(八)数据存储篇-SQL关系型数据库之JdbcTemplate的使用 | 掘金技术征文 - 掘金
原本地址:Spring Boot干货系列:(八)数据存储篇-SQL关系型数据库之JdbcTemplate的使用博客地址:http://tengj.top/ 前言 前面几章介绍了一些基础,但都是静态的,还不足以构建一个动态的应用。本篇开始就要介绍数据交互了,为...

Java 序列化与反序列化 - 后端 - 掘金
1、什么是序列化?为什么要序列化? Java 序列化就是指将对象转换为字节序列的过程,而反序列化则是只将字节序列转换成目标对象的过程。 我们都知道,在进行浏览器访问的时候,我们看到的文本、图片、音频、视频等都是通过二进制序列进行传输的,那么如果我们需要将Jav...

Redis 学习笔记 (六):数据安全与性能保障——处理系统故障 - 后端 - 掘金
如果我们决定要将Redis用作应用程序唯一的数据存储手段的话,那么就必须确保Redis不会丢失任何数据。跟提供了ACID(原子性atomicity,一致性consistency,隔离性isolation,耐久性durability,如果一个数据库想要实现可靠的...

深入理解 Java 之 JVM 堆内存分配 - 后端 - 掘金
Java堆是被所有线程共享的一块内存区域,所有对象和数组都在堆上进行内存分配。为了进行高效的垃圾回收,虚拟机把堆内存划分成新生代、老年代和永久代(1.8中无永久代,使用metaspace实现)三块区域。 ...

MYSQL 数据库常见的优化操作 - 后端 - 掘金
一、Index索引 将Index放第一位,不用说,这种优化方式我们一直都在悄悄使用,那便是主键索引。有时候我们可能并不在意,如果定义适合的索引,数据库查询性能(速度)将提高几倍甚至几十倍。 普通索引 ...

也谈面试必备问题之 JavaScript 数组去重 - 前端 - 掘金
Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中。 阅读一些著名框架类库的源码,就好像和一个个大师对话,你...

SpringMVC 服务器端远程推送 - 后端 - 掘金
本篇主要介绍两种方式实现SpringMVC的服务器端推送。 方式一,基于SSE(服务器端发送事件)的服务器端推送。 这种方式的流程类似于Ajax。 首先在src/main/resources/view...

扎心了,老铁!Node.js 福利图爬虫程序 - 后端 - 掘金
那天晚上,打完LOL后,电脑右下角弹出了一个小框:"超越完美比例的诱惑 LOL大尺度同人手绘" 。点开网站后不仅有二次元,还有三次元和Cosplay,年轻气盛气血方刚的我大呼过瘾,一口气看了十几个图册后,我觉得一页只能看一张老是要点下一页然后网页重新渲染再下一...

Google guava 工具类的介绍和使用 - 后端 - 掘金
概述 工具类 就是封装平常用的方法,不需要你重复造轮子,节省开发人员时间,提高工作效率。谷歌作为大公司,当然会从日常的工作中提取中很多高效率的方法出来。所以就诞生了guava。。 ...

使用 Spring 配置动态数据源实现读写分离 - 后端 - 掘金
最近搭建的一个项目需要实现数据源的读写分离,在这里将代码进行分享,以供参考。关键词:DataSource 、AbstractRoutingDataSource、AOP 首先是配置数据源 <...

使用 Spring 框架的声明式事务管理 - 后端 - 掘金
记录一个上周遇到的小问题。 后端开发免不了要和事务打交道,比较常用的就是利用 Spring 框架的声明式事务管理,简单的说就是在需要事务管理的类或方法上添加 @Transactional 注解,然后在配置类上...

SpringBoot+Shiro 学习之 “记住我” 和“GIF 验证码”功能的实现 - 后端 - 掘金
学习目标 如标题有如下两个功能实现: 记住我的功能:通过设置key为“rememberMe”的cookie保存在客户端来完成记住我的功能,下次用户访问指定页面时就不会重...

Spring 多数据源管理源码分析 - 后端 - 掘金
Spring多数据源管理实现原理 应用场景: 大部分单一架构项目连接一台数据库服务器,但随着业务的增加数据库数据量不断飙升,数据库达到性能瓶颈,大部分技术人员都会对数据库主从配置;既然读写分离那就...

大话程序猿眼里的高并发之续篇 - 后端 - 掘金
分层,分割,分布式 大型网站要很好支撑高并发,这是需要长期的规划设计 在初期就需要把系统进行分层,在发展过程中把核心业务进行拆分成模块单元,根据需求进行分布式部署,可以进行独立团队维护开发。 分层 ...

【Java 高手经验】我的 Java 问题排查工具单 - 后端 - 掘金
我的问题排查工具箱 前言 平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常觉得帮助很大的工具,大家一起进步。 闲话...

我的 Java 后端书架 - 后端 - 掘金
我的Java后端书架 1月前 5079 本书架主要针对Java后端开发与架构。 更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可能很著名,但干涩枯燥,喋喋不休的把你带回到大学课堂上昏昏欲睡,不...

干货满满的阿里巴巴 Java 开发手册 - 后端 - 掘金
阿里巴巴 Java 开发手册 阿里巴巴集团技术部首次向业界公开 Java 开发手册,总共五大章节,干货满满,大多数规约还有说明以及正、反代码实例,对于新手而言能从中学到很多知识。还有就是非常适合全公司推广,利于项目维护以及规范开发...

java 并发编程之 ConcurrentHashMap - 后端 - 掘金
引言 ConcurrentHashMap是线程安全并且高效的HashMap,在并发编程中经常可见它的使用,在开始分析它的高并发实现机制前,先讲讲废话,看看它是如何被引入jdk的。 为什么引入Con...

关于 spring ioc (DI-依赖注入) 你需要知道的一切 - zejian 的博客 - 博客频道 - csdn.net - 后端 - 掘金
【版权申明】未经博主同意,不允许转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/54561302 出自【zejian的博客】 ...

java spring 项目推荐 - 后端 - 掘金
项目需要 JDK 1.7及以上 Maven 管理jar包 ...

MongoDB Plugin 可能 java 上最好用而且实时跟进官方版本的 ORM,让您更加舒适地使用 MongoDB。 - 后端 - 掘金
MongoDB Plugin ...

java 多线程核心技术梳理 (附源码) - 后端 - 掘金
本文对多线程基础知识进行梳理,主要包括多线程的基本使用,对象及变量的并发访问,线程间通信,lock的使用,定时器,单例模式,以及线程状态与线程组。 写在前面 花了一周时间阅读《java多线程编程核心技术》(高洪岩 著),本文算是此书的整理归纳,书中几乎所有示例...

日交易额百亿级交易系统的超轻量日志实现 - 后端 - 掘金
首先来聊聊往事吧~~两年前就职于一家传统金融软件公司,为某交易所开发一套大型交易系统,交易标的的价格为流式数据,采用价格触发成交方式,T+0交易制度(类似炒股,只是炒的不是股票而是其他标的物,但可以随时开平仓)。鉴于系统需要记录大量价格数据、交易信息及订单流水...

最近 5 年 133 个 Java 面试问题列表 - 后端 - 掘金
来源:https://github.com/YHGui/easy-job/blob/master/面试题/133个Java常见面试题.mdJava 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别(Str...

高手教你十分钟写个 RPC 框架 - 后端 - 掘金
互联网时代,各种RPC框架盛行,细看各种框架,应用层面有各种变化,但是万变不离其宗,RPC最核心的部分基本都是一致的。那就是跟远程的服务器进行通信,像调用本地服务一样调用远程服务。然后在这些基础上可能会附加一些诸如,服务自动注册和发现,负载均衡,就近路由,调用...

java 并发编程 --Runnable Callable 及 Future - 后端 - 掘金
1.Runnable Runnable是个接口,使用很简单: 1. 实现该接口并重写run方法 2. 利用该类的对象创建线程 3. 线程启动时就会自动调用该对象的run方法 通常在开发中结合ExecutorService使用,将任务的提交与任务的执行解耦开,同...

jsoniter:全世界最快的 JSON 解析器(Java & Go) - 后端 - 掘金
jsoniter(json-iterator)是一款快且灵活的 JSON 解析器,同时提供 Java 和 Go 两个版本 jsoniter 有何独特之处? Jsoniter 是最快的 JSON 解析器。它最多能比普通的解析器快10倍之多,即使在数据绑定的用法...

SSM(七)在JavaWeb应用中使用Redis - 掘金
前言 由于最近换(mang)了(de)家(yi)公(bi)司接触了新的东西所以很久没有更新了。这次谈谈Redis,关于Redis应该很多朋友就算没有用过也听过,算是这几年最流行的NoSql之一了。Redis的应用场景非常多这里就不一一列举了,这次就以一个最简单...

通过项目逐步深入了解Spring MVC(一)|掘金技术征文 - 掘金
相关阅读: 本文档和项目代码地址:https://github.com/zhisheng17/springmvc 如果觉得不错的话,欢迎给个 star , 如果你想完善这个项目的话,你也可以 fork 后修改然后推送给我。 转载请注明出处和保留以上文字! 了...

《银行的一天》演示日志处理保序、不丢、不重 - 后端 - 掘金
摘要: 日志处理是一个很大范畴,其中包括实时计算、数据仓库、离线计算等众多的点。这篇文章主要目的为了讨论如何在实时计算场景中,如何能做到日志处理保序、不丢失、不重复,并且在上下游业务系统不可靠(存在故障),业务流量剧烈波动情况下,如何保持这三点。 日志处理是...

Spring 定时任务实现方案 - 后端 - 掘金
项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用 spring 框架,所以我都将结合 spring 框架来介绍。...

Java 知识图谱收集整理 - 后端 - 掘金
平时看到不错的图谱的时候会习惯性的保存收集,今天一看电脑,发现还有蛮多的,所以先把Java知识图谱分享出来,如果能帮助到Java学习者,那是最好不过的了。 1、Java学习路径1 ...

一篇 SSM 框架整合友好的文章(一) - 后端 - 掘金
最近公司实行996,实在太忙,之前写的《rxjava系列文章》告一段落,还有两篇会在一月中旬补上,感谢大家。这篇文章讲述mybatis搭建DAO层,另外这系列文章是我看完《java高并发秒杀系列》的课程整理的,所以文章采用的例子也来源于这系列课程。 ...

Java后端2017书单推荐 | 掘金技术征文 - 掘金
原本地址:Java后端2017书单推荐博客地址:http://tengj.top/ 前言 对于程序员来说,个人感觉最佳学习方式是看书,视频花费时间太长,而博客则不够系统。初学相关领域最好的方式就是找到一本经典的好书,然后啃完它。 经常有网友要我推荐一些Ja...

开发笔记之你弄不懂的 JAVA 反射机制 - 后端 - 掘金
_寒鸦, FrigidCrow我热爱编程, 代码让我快乐, 我认为上帝就是最强大的程序员, "Hello World"真正的开辟了一个世界. JAVA反射机制,...

40 个 Java 多线程问题总结 - 后端 - 掘金
前言 这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。 这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的...

Java 语法清单 - 后端 - 掘金
Java 语法清单翻译自 egek92 的 JavaCheatSheet,从属于笔者的 Java 入门与实践系列。时间仓促,笔者只是简单翻译了些标题与内容整理,支持原作者请前往原文点赞。需要注意的是,此文在 Reddit 上也引起了广泛的讨论,此文讲解的语法要...

开发笔记之你弄不懂的JAVA反射机制 - 掘金
_寒鸦, FrigidCrow我热爱编程, 代码让我快乐, 我认为上帝就是最强大的程序员, "Hello World"真正的开辟了一个世界. JAVA反射机制, 啧啧, 当你看到这几个字的时候就有一种不好的预感, 没错, 这个东西是不怎...

Java Volatile Keyword - 译文 - 掘金
Java Volatile Keyword   并发是程序界的量子物理,然而volatile又是量子物理中薛定谔的猫。本篇文章试图系统的梳理一下java中的Volatile关键字。这篇译文可能帮助你更好的理解volatile关键字。&#...

java 实现图片滤镜的高级玩法 - Android - 掘金
cv4j是一个图像处理库 github 地址:https://github.com/imageprocessor/cv4j 具体介绍,可以参考上一篇文章java实现图片的滤镜效果目前,cv4j 已...

详解 Javascript十大常用设计模式 - 前端 - 掘金
一:理解工厂模式    工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。    简单的工厂模式可以理解为解决多个相似的问题;这也是她的优点;比如如下代码:&...

【译】2017 年你不能错过的 Java 类库 - 后端 - 掘金
各位读者好, 这篇文章是在我看过 Andres Almiray 的一篇介绍文后,整理出来的。 因为内容非常好,我便将它整理成参考列表分享给大家, 同时附上各个库的特性简介和示例。 请欣赏! Gui...

Java 进阶面试问题列表 - 后端 - 掘金
翻译自Java developer interview questions: The hard part ...

Java连接Oracle数据库的三种连接方式 - 掘金
转载请务必注明来源地址: Java连接Oracle数据库的三种连接方式 背景: 这两天在学习Oracle数据库,这里就总结下自己上课所学的知识,同时记录下来,方便整理当天所学下的知识,也同时方便日后自己查询。 SQL语句的话,这里我就不多讲了,感觉和其他的数据...

程序员必备利器——Java程序性能分析工具Java VisualVM(Visual GC) - 掘金
程序员必备利器——Java程序性能分析工具Java VisualVM(Visual GC) VisualVM 是一款免费的\集成了多个JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量...

Java 泛型详解 - 后端 - 掘金
泛型是 Java 中一个非常重要的知识点,在 Java 集合类框架中泛型被广泛应用。本文我们将从零开始来看一下 Java 泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除。...

各大公司 Java 后端开发面试题总结 - 后端 - 掘金
ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它...

Java 并发:深入分析 synchronized 的实现原理 - 后端 - 掘金
原文出处: cmsblogs 记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,...

深入分析 Java Web 中的中文编码问题 - 后端 - 掘金
深入分析 Java Web 中的中文编码问题 背景: 编码问题一直困扰着程序开发人...

Java面试题收集 - 掘金
不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题。 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Client/Server),客户端/服务端,桌面应用程序 2...

JavaEE面试题收集 - 掘金
Java EE平台构建于Java SE平台之上,Java EE平台提供一组API和运行环境来开发和运行大规模的,多层的,可扩展的,可靠的和安全的网络应用程序。这里会不断收集和更新JavaEE基础相关的面试题,目前已收集84题。 1.Javascript中常用的...

50道Java基础编程练习题 - 掘金
50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈,这里为了做收藏用。 1.指数计算问题 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔...

junit4 备忘录 - 后端 - 掘金
简介 JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 测试用例不是用来证明你(的逻辑)是对的,而是用来证明你(的断言)没有错。 ju...

java 多线程核心技术梳理 (附源码) - 后端 - 掘金
本文对多线程基础知识进行梳理,主要包括多线程的基本使用,对象及变量的并发访问,线程间通信,lock的使用,定时器,单例模式,以及线程状态与线程组。 写在前面 花了一周时间阅读《java多线程编程核心技术》(高洪岩 著),本文算是此书的整理归纳,书中几乎所有示例...

java 中的内存模型 - 后端 - 掘金
概述 在java中应为不同的目的可以将java划分为两种内存模型:gc内存模型。并发内存模型。 gc内存模型 java与c++之间有一堵由内存动态分配与垃圾收集技术所围成的“高墙”。墙外面的人想进去,墙里面的人想出来。 java在执行java程序的过程中会把它...

java 虚拟机故障处理工具 - 后端 - 掘金
概述 给系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。 java开发人员可以在jdk安装的bin目录下找到除了java,javac以外的其他命令。这些命令主要是一些用于监视虚拟机和故障处理的工具。这些工具包括: 名称...

java 中的注解 (Annotation) - 后端 - 掘金
简介 注解,java中提供了一种原程序中的元素关联任何信息、任何元素的途径的途径和方法。 注解是那些插入到源代码中使用其他工具可以对其进行处理的标签。注解不会改变程序的编译方式。java编译器会对包含注解与不包含注解的代码生成相同的虚拟机指令。在java中,注...

java 中的 NIO - 后端 - 掘金
简介 从JDK1.4开始,java中提供一个种叫NIO(Non-Blocking IO)的IO处理机制。与以往的标准IO机制(BIO,Blocking IO)不同的是,新的机制把重点放在了如何缩短抽象与现实之间的距离上面。NIO中提出了一种新的抽象,NIO 弥...

java 中的 AIO - 后端 - 掘金
简介 jdk7中新增了一些与文件(网络)I/O相关的一些api。这些API被称为NIO.2,或称为AIO(Asynchronous I/O)。AIO最大的一个特性就是异步能力,这种能力对socket与文件I/O都起作用。AIO其实是一种在读写操作结束之前允许进...

JAVA 中的网路编程 - Android - 掘金
1.JAVA中的网路编程 这篇文章,是关于JAVA网络编程扯蛋,如果蛋疼了呢?就继续往下看吧! 2.网络模型 关于java的网络编程,其实也没什么的,第一个先扯淡的是这个网络模型:OSI参考模型&TCP/IP参考模型,结构如下图所示: 通常来讲,这...

Spring Boot 学习 & 使用指南 - 后端 - 掘金
Spring Boot是Spring Project的顶级项目之一,她的其他小伙伴还有Spring Cloud、 Spring Framework、Spring Data等等,本文并不是Spring Boot的详...

[java 手把手教程][第二季]java 后端博客系统文章系统——No5 - 掘金
[java手把手教程][第二季]java后端博客系统文章系统——No5 停更了一个月后,我们再次开始更新。具体原因只能说是过年事情太多,幼时不知努力,长大了却又事事缠身。 这一期主要是根据WordPress执行的效果来观察数据库,从而分析WordPress的程...

SpringBoot+shiro 整合学习之登录认证和权限控制 - 后端 - 掘金
学习任务目标 用户必须要登陆之后才能访问定义链接,否则跳转到登录页面。 对链接进行权限控制,只有当当前登录用户有这个链接访问权限才可以访问,否则跳转到指定页面。 ...

面试的角度诠释 Java 工程师(一) - 后端 - 掘金
前言: 我相信每一个程序员都是为了生活而努力着的。很多人因为兴趣,从此踏上了这条‘烧脑大行动’的金桥;也有很多人因为梦想和执着,奋不顾身融入这个职业;还有很多人因为被现实逼得太无奈,不得不为自己、为家人、为未来谋这么一条坎坷的路...

dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb3.4-redis3.2 整合(四)Spring AOP 中使用 log4j 实现 http 请求日志入 mongodb - 后端 - 掘金
1、面向切面编程的一些术语 切面(Aspect):切面用于组织多个Advice,Advice放在切面中的定义。 ...

我的 Java 后端书架 - 后端 - 掘金
我的Java后端书架 1月前 5079 本书架主要针对Java后端开发与架构。 更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可能很著名,但干涩枯燥,喋喋不休的把你带回到大学课堂上昏昏欲睡,不...

【Java编码规范】《阿里巴巴Java开发手册(正式版)》发布! - Android - 掘金
2017年开春之际,诚意献上重磅大礼:阿里巴巴Java开发手册,首次公开阿里官方Java代码规范标准。这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大降低代码维护成本。 点击下载《 阿里巴巴Java开发手册》...

关于 spring ioc (DI-依赖注入) 你需要知道的一切 - zejian 的博客 - 博客频道 - csdn.net - 后端 - 掘金
【版权申明】未经博主同意,不允许转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/54561302 出自【zejian的博客】 ...

Java 动态代理 - 后端 - 掘金
代理模式是设计模式中一个非常重要的模式,代理模式有两个角色,一个是代理类,一个是委托类,委托类也是真正的业务类,两者都有相同的接口; 代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个...

事务并发的可能问题与其解决方案 - 后端 - 掘金
一、多个事务并发时可能遇到的问题 Lost Update 更新丢失 a. 第一类更新丢失,回滚覆盖:撤消一个事务时,在该事务内的写操作要回滚,把其它已提交的事务写入的数据覆盖了。 b. 第二类更新丢失,提交覆盖:提交一个事务时,写操作依赖于事务内读到...

Java 进阶面试问题列表 - 某熊的全栈之路 - 知乎专栏 - 后端 - 掘金
Java 进阶面试问题列表翻译自Java developer interview questions: The hard part,从属于笔者的 Java入门与工程实践系列。最近公司打算招几个 Java 开发人员,正巧在 Reddit ...

java spring+mybatis 整合实现爬虫之《今日头条》搞笑动态图片爬取 - 后端 - 掘金
先上效果图 抓取的动态图: 数据库: 一.此爬虫介绍 今日头条本身就是做爬虫的,爬取各大网站的图片文字信息,再自己整合后推送给用户,特别是里面的动态图片,很有意思。在网上搜了搜,大多都是用Python来写的,本人是学习javaw...

Java 注解学习笔记 - 后端 - 掘金
1 什么是注解 JDK 5中引入了源代码中的注解(annotation)这一机制。注解使得Java源代码中不但可以包含功能性的实现代码,还可以添加元数据(matedata)。 注解的功能类似于代码中的注释,所不同的是注解不是提供代码功能的说明,...

spring 中加载 jpa 的 debug 信息 - 后端 - 掘金

For JPA log4j.logger.org.springframework.orm.jpa=DEBUG log4j.logger.org.springframework.orm.jpa.JpaTransactionManager=DEBUG log4...

Spring 详解篇之 AOP 面向切面编程 - 后端 - 掘金
一、概述 Aop(aspect oriented programming面向切面编程),是spring框架的另一个特征。AOP包括切面、连接点、通知(advice)、切入点(pointCut) 。 ...

【spring 指南系列】使用 Spring 缓存数据 - 后端 - 掘金
本指南将指导您完成在Spring所托管bean上启用缓存的过程。 What you’ll build 您将构建一个应用程序,在一个简单的book repository中启用缓存。 What you’ll need ...

java 之反射技术及其应用 - 后端 - 掘金
翻阅了很多资料想查看一个比较通俗易懂的关于java反射机制的理解,但是想要从概念中去理解一项技术,可能有点困难,所以先将理论型知识贴出来,后面,慢慢来理解。 反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能...

通过项目逐步深入了解Spring MVC(一)|掘金技术征文 - 掘金
相关阅读: 本文档和项目代码地址:https://github.com/zhisheng17/springmvc 如果觉得不错的话,欢迎给个 star , 如果你想完善这个项目的话,你也可以 fork 后修改然后推送给我。 转载请注明出处和保留以上文字! 了...

Spring Boot 揭秘与实战(一) 快速上手 - 掘金
计划开个专栏,讲解《Spring Boot 揭秘与实战》系列。原文地址:Spring Boot 揭秘与实战(一) 快速上手博客地址:http://blog.720ui.com/ 简介 什么是Spring Boot Spring Boot其设计目的是用来简化 ...

库存-Mysql中的事务、锁与存储引擎 - 掘金
设计一个库存系统。在库存系统中,最重要的就是要防止超卖。模拟的SQL语句如下:首先查询是否有剩余量,正常的操作为: select * from t_goods where id=1 and rest>0;然后发现有剩余量,开始执行更新操作: upd...

如何把 Java Web 应用放在 docker 容器中运行 - 掘金
本文适合 docker 零基础,且希望使用 docker 运行 Java Web 应用的人士。因为是傻瓜教程,这里没有使用 docker 的高级功能,本教程旨在用最简单方法实现目标。 安装 dockerDocker 的安装资源文件存放在Amazon,由于国内...

jvm 系列 (七):jvm 调优 - 工具篇 - 后端 - 掘金
16年的时候花了一些时间整理了一些关于jvm的介绍文章,到现在回顾起来还是一些还没有补充全面,其中就包括如何利用工具来监控调优前后的性能变化。工具做为图形化界面来展示更能直观的发现问题,另一方面一些耗费性能的分析(dump文件分析)一般也不会在生产直接分析,往...

浅谈 HTTP 请求响应过程 - 后端 - 掘金
我是一个服务器,名字是www.lingyv.cn,门牌号是121.42.155.28,每天得工作就是跟各种浏览器打交道。他们总来我这要求取信息、存信息、删信息。可惜我才疏学浅,只稍微学过HTTP协议,所以看得懂用HTTP规定格式发过来的请求信,当然,回复他的时...

2017 年小米春招内推面试面经 - 后端 - 掘金
首先,我感到很讶异的是,在我投完简历一天后(2017年2月 23日),小米的工作人员就打电话给我,并且敲定了电话面试的日期(2017年2月27日)。当时我还在家里享受着寒假呢,这也许是来自东北某末流985的优势吧2333。 ...

详细深入分析 Java ClassLoader 工作机制 - 掘金
申明:本文首发于 详细深入分析 ClassLoader 工作机制 ,如有转载,请务必注明原出处即可,谢谢配合。 详细深入分析 Java ClassLoader 工作机制 什么是 ClassLoader ? 大家都知道,当我们写好一个 Java 程序之后,不...

最全 Java NIO 系列教程 - 后端 - 掘金
Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。 Java NIO提供了与标准IO不同的IO工作方式: ...

【死磕 Java 并发】—–深入分析 volatile 的实现原理 - 后端 - 掘金
通过前面一章我们了解了synchronized是一个重量级的锁,虽然JVM对它做了很多优化,而下面介绍的volatile则是轻量级的synchronized。如果一个变量使用volatile,则它比使用synchronized的成本更加低,因为它不会引起线程上...

死磕 Java 并发 - 深入分析 synchronized 的实现原理 - 后端 - 掘金
记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着我们学习的进行我们知道sy...

崛起的 Kafka - 后端 - 掘金
本文译自 Braedon Vickers 发布在 Movio 上的一篇文章,详尽的探讨了在微服务架构升级的过程中,如何使用 Kafka 将微服务之间耦合降到最低,同时能让整个系统在保证高可用的前提下做到高可扩展。 随着微服务的流行,很多公司都在尝试将...

干货满满的阿里巴巴 Java 开发手册 - 后端 - 掘金
阿里巴巴 Java 开发手册 阿里巴巴集团技术部首次向业界公开 Java 开发手册,总共五大章节,干货满满,大多数规约还有说明以及正、反代码实例,对于新手而言能从中学到很多知识。还有就是非常适合全公司推广,利于项目维护以及规范开发...

正向代理与反向代理有什么区别 - 后端 - 掘金
Nginx作为时下最流行的HTTP服务器之一,同时它是一个反向代理服务器,提到反向代理服务器,有同学可能觉得这个概念很模糊,如果说到代理,他可能明白,但是再引出一个正向代理,估计懵了,笔者将尝试用浅显易懂的比方把这两个概念解释清楚。 nginx is...

2016 总结:一个应届生的互联网名企逐梦记 - 掘金
2016 年会是我人生的转折点,即将找工作,来一点正能量给那些和我一样心怀梦想的朋友吧。 这一年,我大概做了如下几件事: 敲了超过 7 万行代码 写了约 80 篇技术博客 第一次说走就走的旅行 第一次买了超过自己消费能力的奢侈品 我的个人网站上这一年的纪要...

Linux(二)服务器运行环境配置 - 后端 - 掘金
前言Linux相信对大多数程序员来说都不陌生,毕竟在服务器端依然还是霸主地位而且丝毫没有退居二线的意思,以至于现在几乎每一个软件开发的相关人员都得或多或少的知道一些Linux的相关内容,本文将介绍如何在刚拿到一台云服务器(采用centos)来进行运行环境的搭建...

SSM(二)Lucene 全文检索 - 后端 - 掘金
前言 大家平时肯定都有用过全文检索工具,最常用的百度谷歌就是其中的典型。如果自己能够做一个那是不是想想就逼格满满呢。Apache就为我们提供了这样一个框架,以下就是在实际开发中加入Lucene的一个小Demo。 获取Maven依赖首先看一下实际运行的效果图...

理解并发 / 并行,阻塞 / 非阻塞,同步 / 异步 - 后端 - 掘金
昨天面试一个人,正好聊到操作系统原理,于是我又把这些概念复习了一遍并记下来。留着以后吹水用。 1. 阻塞,非阻塞 首先,阻塞这个词来自操作系统的线程/进程的状态模型...

京东商城交易系统的演进之路 - 后端 - 掘金
本文根据京东商城交易平台的杨超在“第一期蝴蝶沙龙:揭秘618电商大促背后的高并发架构”会议上的演讲整理而成。 大家好!我是来自京东商城交易平台的杨超,今天特别高兴能够来给大家做这个分享。我是 2011 年加入京东,5 年中我经历了不少技术架构的演进,也看到了不...

HTTPS 原理剖析与项目场景 - 后端 - 掘金
最近手头有两个项目,XX导航和XX产业平台,都需要使用HTTPS协议,因此,这次对HTTPS协议做一次整理与分享。 为什么使用HTTPSHTTP 协议,本身是明文传输的,没有经过任何安全处理。那么这个时候就很容易在传输过程中被中间者窃听、篡改、冒充等风险。这...

Nginx负载均衡 - 掘金
一 特点 1.1 应用情况 Nginx做为一个强大的Web服务器软件,具有高性能、高并发性和低内存占用的特点。此外,其也能够提供强大的反向代理功能。俄罗斯大约有超过20%的虚拟主机采用Nginx作为反向代理服务器,在国内也有腾讯、新浪、网易等多家网站在使用Ng...

Docker 学习资源整理 - 后端 - 掘金
Docker 是近年来非常火的容器技术,而且啊 Docke r不仅仅是红帽和Canonical等Linux巨头眼里的宠儿,微软等专有软件公司也在热烈拥抱 Docker,所以就知道 Docker 为啥这么火了。我相信有很多人对 Docker 感兴趣,都想学学 D...

分布式缓存 Redis 使用心得 - 后端 - 掘金
最近对开源分布式缓存产品redis做了一些研究,于是决定整理一下该产品的特性及使用场景拿出来分享。一、缓存在系统中用来做什么1. 少量数据存储,高速读写访问。通过数据全部in-momery 的方式来保证高速访问,同时提供数据落地的功能,实际这正是Redis最主...

通过项目逐步深入了解Spring MVC(一)|掘金技术征文 - 掘金
相关阅读: 本文档和项目代码地址:https://github.com/zhisheng17/springmvc 如果觉得不错的话,欢迎给个 star , 如果你想完善这个项目的话,你也可以 fork 后修改然后推送给我。 转载请注明出处和保留以上文字! 了...

Kafka 设计解析(一)- Kafka 背景及架构介绍 - 后端 - 掘金
本文转自Jason's Blog, 原文链接 http://www.jasongj.com/2015/03/10/KafkaColumn1 摘要 Kafka是由LinkedIn开发并开源的分布式消息系统,因其分布式及高吞吐率而被广泛使用,现已与Cl...

RPC 解决了什么问题 - 后端 - 掘金
RPC(remote procedure call),远程过程调用,相信大家都不陌生。如果有不清楚的同学可以看下wiki定义:In distributed computing a remote procedure call (RPC) is when a co...

深入理解 Java 之线程池 - 后端 - 掘金
出处:http://www.cnblogs.com/dolphin0520/ 本文归作者海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法...

Linux 探索之旅 | 第一部分第二课:下载 Linux,免费的噢 - 掘金
-- 作者 谢恩铭 转载请注明出处 内容简介 第一部分第二课:下载Linux,免费的噢 第一部分第三课预告:测试并安装Ubuntu 下载Linux,免费的噢 大家好,上一课 Linux探索之旅 | 开宗明义+第一部分第一课:什么是Linux?中,我们...

nginx、swoole 高并发原理初探 - 后端 - 掘金
1 阅前热身 为了更加形象的说明同步异步、阻塞非阻塞,我们以小明去买奶茶为例。 同步与异步 ...

(译) 五分钟理解 Java 的反射 API - 阅读 - 掘金
像java一样,一种具有反射功能的语言。允许开发人员在运行时检查类型、方法、字段、注解等,并在程序运行时决定是否使用。 为此,Java的反射API提供类,类,字段,构造函数,方法,注释和其他。 使用它们可以与编译时未知的类型进行交互,例如创建未知类的实例并对它...

Spring+SpringMVC+MyBatis 整合 - 后端 - 掘金
spring+SpringMVC+MyBatis(SSM)在我们项目中是经常用到的,这篇文章主要讲解使用Intellij IDEA整合SSM,具体环境如下: ...

超全面 struts2 复习总结笔记 - 后端 - 掘金
如有转载,请申明: 转载至 http://blog.csdn.net/qq_35064774/article/details/64934709 前言 ...

【译】Java 中 Executor, ExecutorService 和 Executors 间的不同 - 后端 - 掘金
搁了好久没更博客,再不写要被某人 BS 了,咦。。。。。 原文链接 java.util.concurrent.Executor, java.util.concurrent.ExecutorS...

【Java 调优之路】Tomcat 性能优化 - 后端 - 掘金
Java性能优化原则:代码运算性能、内存回收、应用配置(影响Java程序主要原因是垃圾回收) 代码层优化:避免过多循环嵌套、调用和复杂逻辑 调优内容: 1、增加最大连接数 2、调整工作模式 3、启用gzip压缩 4、调整JVM内存大小 5、作为We...

Tomcat如何实现WebSocket - 掘金
WebSocket协议属于HTML5标准,越来越多浏览器已经原生支持WebSocket,它能让客户端和服务端实现双向通信。在客户端和服务器端建立一条WebSocket连接后,服务器端消息可直接发送到客户端,从而打破传统的请求响应模式,避免了无意义的请求。比如传...

Java 线程通信内存模型 --- 主内存与工作内存 - Android - 掘金
多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请求数,而TPS值与程序的并发能力有着...

java web 的构建 - 后端 - 掘金
本文主要使用图解介绍了使用IntelliJIDEA 12创建Maven管理的Java Web项目的过程。 本文PDF文档下载地址:http://download.csdn.net/detail/zht666/51...

Java 语法清单 - 后端 - 掘金
Java 语法清单翻译自 egek92 的 JavaCheatSheet,从属于笔者的 Java 入门与实践系列。时间仓促,笔者只是简单翻译了些标题与内容整理,支持原作者请前往原文点赞。需要注意的是,此文在 Reddit 上也引起了广泛的讨论,此文讲解的语法要...

各大公司 Java 后端开发面试题总结 - 后端 - 掘金
ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它...

【Java编码规范】《阿里巴巴Java开发手册(正式版)》发布! - Android - 掘金
2017年开春之际,诚意献上重磅大礼:阿里巴巴Java开发手册,首次公开阿里官方Java代码规范标准。这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大降低代码维护成本。 点击下载《 阿里巴巴Java开发手册》...

深入理解 Java 虚拟机总结 - Android - 掘金
Java 虚拟机总结...

Java 自定义生成与解析(Dom4J)XML 文件 - 后端 - 掘金
XML(Extensible Markup Language):可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。 应用:XML 应用于 web 开发的许多方面,常用...

只需十四步:从零开始掌握 Python 机器学习(附资源) - 后端 - 掘金
Python 可以说是现在最流行的机器学习语言,而且你也能在网上找到大量的资源。你现在也在考虑从 Python 入门机器学习吗?本教程或许能帮你成功上手,从 0 到 1 掌握 Python 机器学习,至于后面再从 1 到 100 变成机器学习专家,就要看你自己...

面试遇到了算法题?看这篇就够啦。 - 掘金
原文地址:github.com/kdn251/interviews 译文出自:掘金翻译计划 译者:王下邀月熊 校对者:PhxNirvana、根号三 这个 链接 用来查看本翻译与英文版是否有差别(如果你没有看到 README.md 发生变化,那就意味着这份翻译文...

Java 集合框架分析 - ArrayList - Android - 掘金
本篇文章主要分析一下Java集合框架中的List部分,ArrayList,该源码分析基于JDK1.8,分析工具,AndroidStudio,文章分析不足之处,还请指正! 相关文章1、Java 集合框架分析-概述2、Java集合框架分析-HashMap3、Jav...

SSM+Shiro 系统登录验证码的实现 - 后端 - 掘金
1、验证码生成类: import java.util.Random; import java.awt.image.BufferedImage; import java.awt.Graphics; import java.awt.Font; import jav...

Java 注解介绍 - 掘金
前言 Java注解介绍 1. 注解中最重要的三个类 Annotation、ElementType、RetentionPolicy这三个类是注解中最重要的类,没有这三个类就没有注解,其中Annotation是接口,其余两个是枚举。所有的注解都基于这三个类,所谓的...

基于 Spring Boot、Spring Cloud、Docker 的微服务系统架构实践 - 后端 - 掘金
原文/项目 地址:https://github.com/sqshq/PiggyMetrics 由于最近公司业务需要,需要搭建基于spring Cloud的微服务系统。遍访各大搜索引擎,发现国内资料少之又少,也难怪,国内Dubbo正统治着天下。但是,一...

开发笔记之你弄不懂的JAVA反射机制 - 掘金
_寒鸦, FrigidCrow我热爱编程, 代码让我快乐, 我认为上帝就是最强大的程序员, "Hello World"真正的开辟了一个世界. JAVA反射机制, 啧啧, 当你看到这几个字的时候就有一种不好的预感, 没错, 这个东西是不怎...

JVM 之垃圾收集器 - Android - 掘金
首先了解两个概念 并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 并发(Concurrent):指用户线程与垃圾收集器线程同时执行(但不一定是并行的,可能会交替执行),用户程序在...

商城项目实战 | 11.2 实现商城分类模块的一级目录和二级目录效果(二) - Android - 掘金
本文为菜鸟窝作者刘婷的连载。”商城项目实战”系列来聊聊仿”京东淘宝的购物商城”如何实现。 在文章《商城项目实战 | 11.1 实现商城分类模块的一级目录和二级目录效果(一)》中已经详细介绍了一级目录的实现,下面就继续往下实现轮...

Java 中间件入门教程 - 后端 - 掘金
前言 中间件 ...

JavaScript 设计模式 ① 正确使用面向对象编程的姿势 - 掘金
javascript是一门弱语言,他有着分同一般的灵活性使它迅速的成为几乎人人必会的一门语言,but,你们使用的姿势真的正确吗? 在以前的开发过程当中,老板:给我加个验证用户邮箱、验证用户短信...功能! function checkMessage(){......

Java 的 23 种设计模式全解析 - 后端 - 掘金
一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、...

超全面 spring 复习总结笔记 - 后端 - 掘金
前言 最近感触颇深,原谅我在开头写心情日记。介意的跳过看正文。 市场 趋势 近几年,技术市场对新人越来越不友好,社招几乎是三年经验起...

理解 Java 中 HashMap 的工作原理 - 后端 - 掘金
+++ date = "2016-05-25T23:10:44+08:00" description = "理解Java中HashMap的工作原理" draft = false tags = ["Hash","HashMap"] title = "理解Java...

深入分析 java 线程池的实现原理 - 后端 - 掘金
转载请注明原创出处,谢谢!简书占小狼http://www.jianshu.com/users/90ab66c248e6/latest_articles 前言 线程...

Java 内部类 - 后端 - 掘金
内部类包括 成员内部类、方法内部类、静态内部类、匿名内部类。 内部类的作用 由于内部类的实现和外部类没有关系,内部类可自由继承其他类,所以在...

Java 里如何实现线程间通信? - Android - 掘金
正常情况下,每个子线程完成各自的任务就可以结束了。不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了。 本文涉及到的知识点:thread.join(), object.wait(), object.notify(), Co...

40 个 Java 多线程问题总结 - 后端 - 掘金
前言 这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。 这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的...

Java 进阶资源汇总 - 后端 - 掘金
Java经过将近20年的发展壮大,框架体系已经丰满俱全;从前端到后台到数据库,从智能终端到大数据都能看到Java的身影,个人感觉做后台进要求越来越高,越来越难。 为什么现在Java程序员越来越难做,一是Java框架体系众多,学习成本提高,每一个细分问题...

Java面试重难点剖析(不断更新) - 掘金
1、高并发访问数据库优化方法 2、 java finalize方法总结、GC执行finalize的过程 3、简单理解Socket及TCP/IP、Http、Socket的区别 4、 java之yield(),sleep(),wait()区别详解-备忘笔记 5、线...

别怕, 手把手带你撕、拉、扯下 SpringMVC 的外衣 - 后端 - 掘金
前言 提到框架,就不得不提一下看源码,我们平时总是想求大神带我们飞,然而看源码就是一个向大神学习的最直接的一种方式,然而我们每次鼓起勇气看源码前是这样的 ...

一个小时学会 MySQL 数据库 - 工具资源 - 掘金
随着移动互联网的结束与人工智能的到来大数据变成越来越重要,下一个成功者应该是拥有海量数据的,数据与数据库你应该知道。 一、数据库概要 数据库(Database)是存储与管理数据的软件系统,就像一个存入数据的物流仓库。 在商业领域,信息就意味着商机,取得信息的...

Java 基础思维导图,让 Java 不再难懂 - 工具资源 - 掘金
思维导图的好处 最近看了一些文章的思维导图,发现思维导图真是个强大的工具。了解了思维导图的作用之后,觉得把它运用到java上应该是个不错的想法,这样回顾知识点的时候一目了然,快速知道自己的短板。 思维导图不仅仅只有简单明了这个好处,它还能加深人对主题的印象和...

Java 集合框架分析 - LinkedHashMap - Android - 掘金
本篇文章主要分析一下Java集合框架中的Map部分,LinkedHashMap,该源码分析基于JDK1.8,分析工具,AndroidStudio,文章分析不足之处,还请见谅! 相关文章1、Java 集合框架分析-概述2、Java...

Final of Java,这一篇差不多了 - Android - 掘金
前言 在Java中final是一个关键字,最近在研究和整理项目的代码,发现final出现的频次有些高,而且有些用法也是不知乎所以,所以一直也想整理一篇关于Java中final关键字使用和原理的文章,来梳理一下自己的思路。同时,也...

Java 语法清单 - 后端 - 掘金
Java 语法清单翻译自 egek92 的 JavaCheatSheet,从属于笔者的 Java 入门与实践系列。时间仓促,笔者只是简单翻译了些标题与内容整理,支持原作者请前往原文点赞。需要注意的是,此文在 Reddit 上也引起了广泛的讨论,此文讲解的语法要...

【译】2017 年你不能错过的 Java 类库 - 后端 - 掘金
各位读者好, 这篇文章是在我看过 Andres Almiray 的一篇介绍文后,整理出来的。 因为内容非常好,我便将它整理成参考列表分享给大家, 同时附上各个库的特性简介和示例。 请欣赏! Gui...

各大公司 Java 后端开发面试题总结 - 后端 - 掘金
ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它...

Java 开发者应该学习的 8 个工具 - Android - 掘金
在Stormpath(一款用户管理和认证服务),我们认真对待质量和效率。任何一个优秀的工匠,仅仅拥有天赋是不够的,你在工作中还需要正确的工具。工程学不仅仅是科学,更是艺术。所以,在Stormpath,尽管我们拥有天赋,我们仍不断寻找所需的有用的工具。我们的工程...

【BetterJava】Java 编程须知:语音规范、库、特性、框架、工具和资源 - 后端 - 掘金
Style Java 传统的代码风格是被用来编写非常复杂的企业级 JavaBean。新的代码风格看起来会更加整洁,更加正确,并且更加简单。 Structs 对我们程序员来说,包装数据是最简单的事情之一。下面是传统的通过定义一个 JavaBean 的实...

【Java 高手经验】我的 Java 问题排查工具单 - 后端 - 掘金
我的问题排查工具箱 前言 平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常觉得帮助很大的工具,大家一起进步。 闲话...

JVM 系列 - 类加载机制原理与过程 - 后端 - 掘金
通常我们写完代码,编译代码,生成字节码.Class文件。而这些.Class文件是如何加载到JVM中的呢? 类从被加载到JVM中开始,到卸载出内存为止,整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。发生顺序...

ReentrantLock 实现原理探究 - 后端 - 掘金
1、ReentrantLock介绍 A reentrant mutual exclusion Lock with the ...

static 关键字相关知识点 - 后端 - 掘金
1、为什么要用static关键字? 通常来说,用new创建类的对象时,数据存储空间才被分配,方法才供外界调用。但有时我们只想为特定域分配单一存储空间,不考虑要创建多少对象或者说根本就不创建任何对象,再就是...

【译】2017 年你不能错过的 Java 类库 - 后端 - 掘金
各位读者好, 这篇文章是在我看过 Andres Almiray 的一篇介绍文后,整理出来的。 因为内容非常好,我便将它整理成参考列表分享给大家, 同时附上各个库的特性简介和示例。 请欣赏! Gui...

程序员必备利器——Java程序性能分析工具Java VisualVM(Visual GC) - 掘金
程序员必备利器——Java程序性能分析工具Java VisualVM(Visual GC) VisualVM 是一款免费的\集成了多个JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量...

Java 泛型详解 - 后端 - 掘金
泛型是 Java 中一个非常重要的知识点,在 Java 集合类框架中泛型被广泛应用。本文我们将从零开始来看一下 Java 泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除。...

从 JVM 内存模型谈线程安全 - 后端 - 掘金
作为一个三个多月没有去工作的独立开发者而言,今天去小米面试了一把.怎么说呢,无论你水平如何,请确保在面试之前要做准备,就像其中一位面试官说的一样,我知道你水平不错,但是无论如何也是要准备下的,不然你怎么会连这个方法也忘记了? ...

Java 进阶面试问题列表 - 后端 - 掘金
翻译自Java developer interview questions: The hard part ...

【死磕 Java 并发】—–Java 内存模型之分析 volatile - 后端 - 掘金
前篇博客【死磕Java并发】—–深入分析volatile的实现原理 中已经阐述了volatile的特性了: volatile可见性;对一个volatile的读,总可以看到对这个变量最终的写; volatile原子性...

详细深入分析 Java ClassLoader 工作机制 - 掘金
申明:本文首发于 详细深入分析 ClassLoader 工作机制 ,如有转载,请务必注明原出处即可,谢谢配合。 详细深入分析 Java ClassLoader 工作机制 什么是 ClassLoader ? 大家都知道,当我们写好一个 Java 程序之后,不...

谈谈 ThreadLocal - 后端 - 掘金
Java并发编程实战 一书在介绍ThreadLocal类时(第3章),书中有这么两段话,在我初次阅读时不知道如何去理解。 ThreadLocal对象通常用于防止对可变的单实例变量(Singleton)或全局变量进行共享。 ...

趣谈并发 (1):全面认识 Thread - Android - 掘金
读完本文你将了解到: ...

JAVA 基础 - clone浅克隆与深克隆 - 掘金
介绍 一直以来只知道Java有clone方法,该方法属于Object的,对于什么是浅克隆与深克隆就比较模糊了,现在就来补充学习一下。 概念 浅拷贝(浅克隆)复制出来的对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。 深拷贝...

使用 Java 写文件的 N 种方法 - 后端 - 掘金
Writing a new file or copying a file is a task which every developer is required to perform. Java provides many different ways to ...

Commons.lang 工具 - 后端 - 掘金
Commons.lang工具 Apache Commons是一个非常有用的工具包,解决各种实际的通用问题,项目提供了相当丰富的API。我们了解到的Commons Lang只是众多API的比较核心的一小部分而已。 commons.lang跟java.lan...

Java 内存泄漏与内存溢出详解 - 后端 - 掘金
内存泄漏指你用malloc或new申请了一块内存,但是没有通过free或delete将内存释放,导致这块内存一直处于占用状态。 ...

使用 Java 读取文件的 N 种方法 - 后端 - 掘金
Reading a file is a task which every developer is required to perform. Java provides many different ways to read a file according ...

Java 并发编程之 volatile 关键字解析 - 后端 - 掘金
原文出处海子 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java ...

Java 并发:深入分析 synchronized 的实现原理 - 后端 - 掘金
原文出处: cmsblogs 记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,...

Android AOP学习之:AspectJ实践 - 掘金
AOP AOP(Aspect Oriented Programming),中文通常翻译成面向切面编程。在Java当中我们常常提及到的是OOP(Object Oriented Programming)面向对象编程。其实这些都只是编程中从不同的思考方向得出的一种编...

重新认识 java(七) - final 关键字 - 后端 - 掘金
你总以为你会了,其实你只是一知半解。 final 关键字概览 final关键字可用于声明属性、方法、参数和类,分别表示属性不可变、方法不可覆盖、参数不可变和类不可...

如何使用Java、Servlet创建二维码 - 后端 - 掘金
归功于智能手机,QR码逐渐成为主流,它们正变得越来越有用。从候车亭、产品包装、家装卖场、汽车到很多网站,都在自己的网页集成QR码,让人们快速找到它们。随着智能手机的用户量日益增长,二维码的使用正在呈指数上升。 让我们来看看QR码的简要概述,以及如何在Java中...

如何阅读JAVA 字节码(一) - 掘金
  在阅读JAVA字节码以前,需要回忆一下JVM的结构:  Java字节码的信息主要在Java栈中间体现,下图来自网络,描述了java栈的基本结构:  值得注意的是方法区,在Java虚拟机...

0.30000000000000004 - 后端 - 掘金
In [1]: 0.1+0.2 Out[1]: 0.30000000000000004 首先要说的是,这并不是编程语言的bug,而是十进制转换二进制后无限循环小数的精度问题,其他编程语言也有这种情况,有人专门建了一个网站来收录:http:/...

SSM(九) 反射的实际应用 - 构建日志对象 - 掘金
前言 相信做Java的童鞋或多或少都听过反射,这也应该是Java从入门到进阶的必经之路。 但是在我们的实际开发中直接使用它们的几率貌似还是比较少的,(除了造轮子或者是Spring Mybatis这些框架外)。 所以这里介绍一个在实际开发中还是小有用处的反射实例...

Java 知识图谱收集整理 - 后端 - 掘金
平时看到不错的图谱的时候会习惯性的保存收集,今天一看电脑,发现还有蛮多的,所以先把Java知识图谱分享出来,如果能帮助到Java学习者,那是最好不过的了。 1、Java学习路径1 ...

Java 内存溢出 (OOM) 异常完全指南 - 后端 - 掘金
我的职业生涯中见过数以千计的内存溢出异常均与下文中的8种情况相关。本文分析什么情况会导致这些异常出现,提供示例代码的同时为您提供解决指南。Nikita Salnikov-TarnovskiPlumbr Co-Founder and VP of Engineer...

面试题思考:try 代码块中含 return 语句时,代码执行顺序 - 掘金
刷java面试题偶然看到这类问题(try/finally中含有return时的执行顺序),觉得挺有意思于是小小的研究了一下,希望经过我添油加醋天马行空之后,能给你带来一定的帮助 原题 try {} 里有一个return语句,那么紧跟在这个try后的final...

计算机程序的思维逻辑 (81) - 并发同步协作工具 - 掘金
我们在67节和68节实现了线程的一些基本协作机制,那是利用基本的wait/notify实现的,我们提到,Java并发包中有一些专门的同步工具类,本节,我们就来探讨它们。 我们要探讨的工具类包括: 读写锁ReentrantReadWriteLock 信号量Se...

代码结构中 Dao,Service,Controller,Util,Model 是什么意思,为什么划分? - 后端 - 掘金
Java 代码经常看到有这些分类,这些分类都表示什么,有什么意义,是否也同样适应 Android,IOS 和 JS 呢?...

Java 泛型总结 - 后端 - 掘金
什么是泛型 泛型是jdk5引入的类型机制,就是将类型参数化,它是早在1999年就制定的jsr14的实现。 泛型机制将类型转换时的类型检查从运行时提前到了编译时,使用泛型编写的代码比杂乱的使用object并在需要时再强制类型转换的机制具有更好的可读性和安全性。 ...

一个小球带你杀入 Java 多线程的世界,看懂的都是高手? - 后端 - 掘金
多进程和多线程有哪些区别呢?本质的区别在于每个进程拥有自己的一套变量,而线程则共享数据。这听起来似乎有些风险,的确是这样!然而共享变量使得线程之间的通信比进程之间的通信更有效,更容易。与进程相比,线程更轻量级,创建和撤销一个线程比启动新进程的开销小得多。 对J...

35 个 Java 代码性能优化总结 - 后端 - 掘金
前言 代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,...

还搞不清Spring 与 Spring MVC 容器之间的关系? - 掘金
新书Java并发编程系统与模型已上线,欢迎拜读。 在使用Spring MVC的时候,标准的配置是如下这样的: 1.ContextLoaderListener配置: <c...

关于 String s = new String("xyz"); 创建几个对象的问题 - 掘金
原创文章,转载请注明地址:http://www.54tianzhisheng.cn/2017/04/05/String-new/ 你知道在 java 中除了 8 种基本类型外,其他的都是类对象以及其引用。所以 "xyz "在 java 中它...

Java 基础思维导图,让 Java 不再难懂 - 工具资源 - 掘金
思维导图的好处 最近看了一些文章的思维导图,发现思维导图真是个强大的工具。了解了思维导图的作用之后,觉得把它运用到java上应该是个不错的想法,这样回顾知识点的时候一目了然,快速知道自己的短板。 思维导图不仅仅只有简单明了这个好处,它还能加深人对主题的印象和...

从源码分析 String、StringBuilder、StringBuffer 的区别 - 后端 - 掘金
从源码分析 String、StringBuilder、StringBuffer 的区别...

优先队列实现原理分析 - 后端 - 掘金
优先队列是在实际工程中被广泛应用的一种数据结构,不管是在操作系统的进程调度中,还是在相关的图算法比如 Prim 算法和 Dijkstra 算法中,我们都可以看到优先队列的身影,本文我们就来分析一下优先队列的实现原理。...

计算机程序的思维逻辑 (77) - 异步任务执行服务 - 掘金
Java并发包提供了一套框架,大大简化了执行异步任务所需的开发,本节我们就来初步探讨这套框架。 在之前的介绍中,线程Thread既表示要执行的任务,又表示执行的机制,而这套框架引入了一个"执行服务"的概念,它将"任务的提交&quo...

设计模式系列·王小二需求历险记(一) - 掘金
前言 以小说的笔法写的设计模式系列文章,你绝对看得懂![首发于公众号:"聊聊代码"] 设计模式系列·王小二需求历险记(一)设计模式系列·王小二需求历险记(二)设计模式系列·封装、继承、多态设计模式系列·初探设计模式之王小二的疑问设计模式系列...

设计模式系列·王小二需求历险记(二) - 掘金
0x1 原文再续,书接上回 上回说到,C哥凭借自己多年的编码经验,欲传授王小二绝世武功。让我们书接上回。 0x2 来源于生活中的实例 看着王小二求知若渴的眼神,C哥开始对小二循循善诱。 “小二啊,我们假设一个场景:假设你是一名讲师,对于上完你课程的人,你要确保...

【译】Java 中 Executor, ExecutorService 和 Executors 间的不同 - 后端 - 掘金
搁了好久没更博客,再不写要被某人 BS 了,咦。。。。。 原文链接 java.util.concurrent.Executor, java.util.concurrent.ExecutorS...

借助工厂模式构建不同的 Fragment - Android - 掘金
还记的上篇文章 使用观察者模式解决单 Activity 与多个 Fragment 通信 中我使用了观察者模式暂时解决了 Activity 与多个 Fragment 之间的通信问题,最后的更新中我抽象了一个 Fragment 共同的基类:BaseFragment...

ReentrantLock 实现原理探究 - 后端 - 掘金
1、ReentrantLock介绍 A reentrant mutual exclusion Lock with the ...

static 关键字相关知识点 - 后端 - 掘金
1、为什么要用static关键字? 通常来说,用new创建类的对象时,数据存储空间才被分配,方法才供外界调用。但有时我们只想为特定域分配单一存储空间,不考虑要创建多少对象或者说根本就不创建任何对象,再就是...

是时候替换你的 for 循环大法了~ - 前端 - 掘金
《小分享》JavaScript中数组的那些迭代方法~...

使用 atcon 告别混乱的 if else - 前端 - 掘金
这一篇,来聊聊混乱的if、else是怎么来的,怎么和他们说再见,以及写的一个工具函数atcon。 一、代码是怎样混乱的 最简单的一个需求:根据活动改变二维码 qrcode = 'img_a'; // 活动二 if (activity...

CAS 简易说明 - 后端 - 掘金
和基于锁的方案相比,非阻塞算法在设计和实现上都要复杂得多,但是其在灵活性和可伸缩性有巨大的优势。由于非阻塞锁算法可以使多个线程在竞争相同的资源时不会发生阻塞,因此它能在更细的层次上进行协调,并且极大地减少调度开销。并且,非阻塞算法中不存在死锁和其他活跃性问题。...

设计模式之单例模式 - 后端 - 掘金
    之前我们在学习javase的时候曾学习了单例模式,单例模式应该是设计模式中比较简单的一个,也是非常常见的,但是在多线程并发的环境下使用却是不那么简单了,今天给大家分享一个我在开发过程中遇到的单例模式的应用。 &n...

【Java 高手经验】我的 Java 问题排查工具单 - 后端 - 掘金
我的问题排查工具箱 前言 平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常觉得帮助很大的工具,大家一起进步。 闲话...

Java面试重难点剖析(不断更新) - 掘金
1、高并发访问数据库优化方法 2、 java finalize方法总结、GC执行finalize的过程 3、简单理解Socket及TCP/IP、Http、Socket的区别 4、 java之yield(),sleep(),wait()区别详解-备忘笔记 5、线...

Java 基础思维导图,让 Java 不再难懂 - 工具资源 - 掘金
思维导图的好处 最近看了一些文章的思维导图,发现思维导图真是个强大的工具。了解了思维导图的作用之后,觉得把它运用到java上应该是个不错的想法,这样回顾知识点的时候一目了然,快速知道自己的短板。 思维导图不仅仅只有简单明了这个好处,它还能加深人对主题的印象和...

搭建 Maven 私有仓库 - Android - 掘金
前言 最近发现多个项目中有引用相同的模块,所以想着怎么解耦公共模块,就找到了私有仓库这条路。后来发现私有仓库还可以建代理仓库,通过代理将依赖下载到代理仓库后下次可以直接从代理仓库拉取(≖ ‿ ≖)✧,突然发现Java团队开发真的太需要私有仓库了...

深入了解 Java 之垃圾回收 - Android - 掘金
讲解之前先插一句,对于Java的一些变量的存储简单了解一下: 1、本地变量(局部变量):在方法体, 构造体内部定义的变量,在方法结束的时候就被摧毁(虚拟机栈的局部变量表) 2、静态变量(类变量、全局变量;+ final...

日均数据量千万级,MySQL、TiDB 两种存储方案的落地对比 - 后端 - 掘金
盖娅广告匹配系统(GaeaAD)用于支撑盖娅互娱全平台实时广告投放系统,需要将广告数据和游戏 SDK 上报的信息进行近实时匹配,本质上来说需要实时的根据各个渠道的广告投放与相应渠道带来的游戏玩家数据进行计算,实现广告转化效果分钟级别的展现及优化。 ...

Java 数据结构之 LinkedList、ArrayList 的效率分析 - Android - 掘金
前言:      在我们平常开发中难免会用到List集合来存储数据,一般都会选择ArrayList和LinkedList,以前只是大致知道ArrayList查询效率高LinkedList插入删除效率高,今天来实测一下。 先了解一下...

JVM 内存回收对象及引用分析 - 后端 - 掘金
自动垃圾回收是Java相较于C++的一个重要的特点,想了解JVM的垃圾回收机制,首先我们要知道垃圾回收是回收什么地方的垃圾,我在我的上一篇博客《JVM内存区域划分》里面有写到JVM里面的内存是怎么分布的,这里的回收主要是指对上文中提到的Java堆和方法区的内存...

Java 提高篇 - HashTable - 后端 - 掘金
学习Java的同学注意了!!!  学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:523047986  我们一起...

JVM 垃圾回收 - 后端 - 掘金
提到JVM垃圾回收,总觉得离我们程序员有一定的距离。在JAVA中,那是系统自己干的事,我们关心那个干嘛?也就是说我们为什么要学习这个东西,大家开开心心地敲代码不好吗? 还真的不好,一方面我觉得我们可以学习下JAVA语言设计上的一...

各大公司 Java 后端开发面试题总结 - 后端 - 掘金
ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它...

趣谈并发 2:认识并发编程的利与弊 - Android - 掘金
读完本文你将了解: ...

【Java 高手之路】JVM 源码分析之堆外内存完全解读 - 后端 - 掘金
概述 广义的堆外内存 说到堆外内存,那大家肯定想到堆内内存,这也是我们大家接触最多的,我们在jvm参数里通常设置-Xmx来指定我们的堆的最大值,不过这还不是我们理解的Java堆,-Xmx的值是新生代和老生代的和的最大值,我们在jvm参数里通常还会加一个参数-X...

50道Java基础编程练习题 - 掘金
50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈,这里为了做收藏用。 1.指数计算问题 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔...

计算机程序的思维逻辑 (65) - 线程的基本概念 - 掘金
在之前的章节中,我们都是假设程序中只有一条执行流,程序从main方法的第一条语句逐条执行直到结束。从本节开始,我们讨论并发,在程序中创建线程来启动多条执行流,并发和线程是一个复杂的话题,本节,我们先来讨论Java中线程的一些基本概念。 创建线程 线程表示一条单...

必读的 Java 学习资料分享! - 掘金
引言:大年前总结一篇 Python 的资源汇总,有同学说应该来篇 Java 的,LeanCloud 最擅长 Java 的工程师与大家做了个小分享,仅是根据个人的学习经验总结,如果工程师们还有更好的推荐,欢迎在留言板留言,与大家分享。 Java 的语言特性不必多...

Java 线程面试题 Top 50 - Android - 掘金
本文由 ImportNew - 李 广 翻译自 javarevisited。欢迎加入 翻译小组。转载请见文末要求。 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企...

一个 Android 老鸟给公司内部小伙伴整理的路线图 - Android - 掘金
之前和@d_clock 一起组织做了一个wiki《Android开发书籍推荐:从入门到精通系列学习路线书籍介绍》收到挺多好评,后来一个有一个老鸟也给我发了一份他给公司内部小伙伴整理的路线图,分享出来给大家。 因为表格不是按照MD编辑器做的,目前这份是截图啦...

Java 中的多线程你只要看这一篇就够了 - Android - 掘金
引 如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角...

Java 工程师成神之路 - 后端 - 掘金
针对本文,博主最近在写《成神之路系列文章》 ,分章分节介绍所有知识点。欢迎关注。一、基础篇1.1 JVM1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收http://www.jcp.org/en/jsr/detail?id=133ht...

Java 内存区域 - 后端 - 掘金
对于 Java 程序员来说,虚拟机自带内存管理机制,不容易出现内存泄露和内存溢出问题,一旦出现内存泄露方面的问题,如果我们了解虚拟机是怎样使用内存的,将很容易的找到错误发生的原因. ...

重新认识 java(零) - 阅读 - 掘金
好高骛远,眼高手低,是你前进路上最大的绊脚石 — 致走在学习道路上的人 p.s. 本篇文章没有技术含量。 ...

【深入 Java 编程】JVM 源码分析之堆外内存完全解读 - 后端 - 掘金
概述 广义的堆外内存 说到堆外内存,那大家肯定想到堆内内存,这也是我们大家接触最多的,我们在jvm参数里通常设置-Xmx来指定我们的堆的最大值,不过这还不是我们理解的Java堆,-Xmx的值是新生代和老生代的和的最大值,我们在jvm参数里通常还会加一个参数-X...

多种负载均衡算法及其 Java 代码实现 - 后端 - 掘金
首先给大家介绍下什么是负载均衡(来自百科) 负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展 网络设备和 服务器的带宽、增加 吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡,英文名称为Load Balance,其...

死磕 Java 并发 - 深入分析 synchronized 的实现原理 - 后端 - 掘金
记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着我们学习的进行我们知道sy...

Jvm之用java解析class文件 - 掘金
前言: 身为一个java程序员,怎么能不了解JVM呢,倘若想学习JVM,那就又必须要了解Class文件,Class之于虚拟机,就如鱼之于水,虚拟机因为Class而有了生命。《深入理解java虚拟机》中花了一整个章节来讲解Class文件,可是看完后,一直都还是迷...

Java 泛型详解 - 后端 - 掘金
泛型是 Java 中一个非常重要的知识点,在 Java 集合类框架中泛型被广泛应用。本文我们将从零开始来看一下 Java 泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除。...

面试旧敌之 Java 泛型 :主要概念及特点 - Android - 掘金
首先提个问题: Java 泛型的作用是什么?泛型擦除是什么?泛型一般用在什么场景? 如果这个问题你答不上来,那这篇文章可能就对你有些价值。 读完本文你将了解到: 什么是泛型 为什么引入泛型 泛型的使用方式 泛型类 泛型接口 泛型方法...

Java 技术之反射 - Android - 掘金
关于Java反射机制的文章很多,这次换种方式来讲解反射的作用。 本文涉及到的知识点:class.getDeclaredXXX()、XXX.getModifiers()、method.getReturnType()、method.getP...

写给 Android 开发者的 Java 8 简单入门教程 - Android - 掘金
Java 8 是在 2014 年 3 月发布的,Android 工程师为什么要关心 Java 8 呢?理由是 Java 8 所做的改变比 Java 历史上任何一次改变都要深远。Java 8 对于程序员的主要好处在于它提供了更多的编程工具和概念,能以更快,更重要...

重新认识 java(十一)—— java 中的数组 - Android - 掘金
面向对象的一些知识暂时告一段落,从本文开始,进入Java语法的重学阶段~ 初识数...

Java 并发编程:volatile 关键字解析 - Android - 掘金
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机...

我们用错 Java 的增强 For 循环了? - Android - 掘金
foreach用错了? 错误认识 学了那么久的Java了,我们大部分人对forea...

Java 的 equals 与 hashcode 对比分析 - Android - 掘金
在阅读《Effective Java》第3章里读到了关于 equals() 和 hashcode() 的一些介绍,这两个方法是很多Java程序员容易弄混的,因此本文针对这两个方法的用法和具体实现来做一些介绍。 ...

聊聊 Java 内部类 - Android - 掘金
一.磨叽磨叽Java值传递与引用传递 “在Java里面参数传递都是按值传递”即:按值传递是传递的值的拷贝,按引用传递其实传递的是引用的地址值,所以统称按值传递。 ...

Java 集合框架分析 - LinkedList - Android - 掘金
本篇文章主要分析一下Java集合框架中的List部分,LinkedList,该源码分析基于JDK1.8,分析工具,AndroidStudio,文章分析不足之处,还请指正! 相关文章1、Java 集合框架分析-概述2、Java集合...

Java 集合框架分析 - HashMap - Android - 掘金
本篇文章主要分析一下Java集合框架中的Map部分,HashMap,该源码分析基于JDK1.8,分析工具,AndroidStudio,文章分析不足之处,还请见谅! 一、HashMap简介 基于哈希...

探索 Java 隐藏的开销 - Android - 掘金
随着 Android 引入 Java 8 的一些功能,请记住每一个标准库的 API 和语言特性都会带来一些相关的开销,这很重要。虽然设备越来越快而且内存越来越多,代码大小和性能优化之间仍然是有着紧密关联的。这篇 360AnDev 的演讲会探索一些 Java 功...

Java 对象创建的流程 - 掘金
Object obj = new Object(); 虚拟机遇到 new 指令 检查指令的参数是否能在常量池中定位到一个类的符号引用 检查符号引用是否已经被加载、解析和初始化。如果没有则进行类加载。 虚拟机为新生对象分配内存(对象所需的内存大小在类加载...

Java 集合框架分析 - LinkedHashMap - Android - 掘金
本篇文章主要分析一下Java集合框架中的Map部分,LinkedHashMap,该源码分析基于JDK1.8,分析工具,AndroidStudio,文章分析不足之处,还请见谅! 相关文章1、Java 集合框架分析-概述2、Java...

深入了解 Java 之垃圾回收 - Android - 掘金
讲解之前先插一句,对于Java的一些变量的存储简单了解一下: 1、本地变量(局部变量):在方法体, 构造体内部定义的变量,在方法结束的时候就被摧毁(虚拟机栈的局部变量表) 2、静态变量(类变量、全局变量;+ final...

Java 数据结构之 Map 学习总结 - Android - 掘金
前言:     前面学习总结了List的使用及效率对比,今天总结学习一下键值映射关系Map,顺便学习一下Android中使用Map需要注意哪些,以及谷歌官方针对Android对Map做了哪些优化。 先了解下Map    ...

Android 使用 Java8 新特性之 "方法引用" - Android - 掘金
上一文:Android 使用 Java8 新特性之 Lambda expression (附命令者模式简化) 说过 lambda 表达式,在 Android studio 中的环境配置及应用。本文讲下 Java8 新特性之” 方法引用”。 “方法引用”,它...

Java 中的阻塞队列 - Android - 掘金

  1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元...

经典回归:自定义 ClassLoader 和双亲委派机制 - Android - 掘金
博文主要讲classloader的模型、作用和使用,内容是作者学习java反射机制有关知识时记录的笔记。 ClassLoader ClassLoad:类加载器(class loader)用来加载 Java 类到 Java 虚拟...

Java 集合与数据结构:Queue 队列 - Android - 掘金
版权声明:大家都是成年人,希望转载时标明作者 张拭心 与 原文链接,感谢您的支持! 点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 什么是队列 队...

Java 线程面试题 Top 50 - Android - 掘金
本文由 ImportNew - 李 广 翻译自 javarevisited。欢迎加入 翻译小组。转载请见文末要求。 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企...

深入剖析 Android 中的 ArrayMap - Android - 掘金
数据集合在任何一门编程语言中都是很重要的一部分,在 Android 开发中,我们会实用到ArrayList, LinkedList, HashMap等。其中HashMap是用来处理键值对需求的常用集合。 而Android中引入了一个新的集合,叫做ArrayMa...

译-Java内存管理白皮书 - 掘金
说明 有关java并发可以看这里:https://yuedu.baidu.com/ebook/d09e3e28854769eae009581b6bd97f192279bf23  要学习Java或者任意一门技术,我觉得最好的是从官网的资料...

开发笔记之详述 JAVA 构造函数和代码块本身及其执行细节 - 后端 - 掘金
今天在JAVA的研究学习当中发现了构造函数这个神奇但是麻烦的东西, 他在给我感觉很像OC语言中的initWith..., 但是在细节上有很多的不同, 而代码块这个东西更是让我这个敲iOS的眼前一亮, 后来针对代码块这个东西的功能和执行的顺序深究了一番. ...

Java 性能调优之容器扩容问题 - Android - 掘金
在Java和Android编程中,我们经常使用类似ArrayList,HashMap等这些容器。这些容器少则存储几条,多则上千甚至更多。作为性能调优的一部分,容器调优往往被我们忽略,本文将尝试探索阐述一些关于容器调优中的扩容问题。虽然以Java为例,但是也同样...

Java 语法清单 - 后端 - 掘金
Java 语法清单翻译自 egek92 的 JavaCheatSheet,从属于笔者的 Java 入门与实践系列。时间仓促,笔者只是简单翻译了些标题与内容整理,支持原作者请前往原文点赞。需要注意的是,此文在 Reddit 上也引起了广泛的讨论,此文讲解的语法要...

CAS 简易说明 - 后端 - 掘金
和基于锁的方案相比,非阻塞算法在设计和实现上都要复杂得多,但是其在灵活性和可伸缩性有巨大的优势。由于非阻塞锁算法可以使多个线程在竞争相同的资源时不会发生阻塞,因此它能在更细的层次上进行协调,并且极大地减少调度开销。并且,非阻塞算法中不存在死锁和其他活跃性问题。...

static 关键字相关知识点 - 后端 - 掘金
1、为什么要用static关键字? 通常来说,用new创建类的对象时,数据存储空间才被分配,方法才供外界调用。但有时我们只想为特定域分配单一存储空间,不考虑要创建多少对象或者说根本就不创建任何对象,再就是...

Java 泛型详解 - 后端 - 掘金
泛型是 Java 中一个非常重要的知识点,在 Java 集合类框架中泛型被广泛应用。本文我们将从零开始来看一下 Java 泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除。...

你还在用传统的 JDBC 持久化访问吗? - 工具资源 - 掘金
前言 这里我会采用mybatis3.2做数据库的持久化,很多小伙伴或许还停留在老师的教导下,仍然停留在使用传统的JDBC持久化访问数据层。今天,我们来聊聊面向接口编程和怎么充分利用注解的优势! ...

重新认识 java(七) - final 关键字 - 后端 - 掘金
你总以为你会了,其实你只是一知半解。 final 关键字概览 final关键字可用于声明属性、方法、参数和类,分别表示属性不可变、方法不可覆盖、参数不可变和类不可...

2017 不能错过的 Java 库 - Android - 掘金
为了把大家从越来越多的技术水文中拯救出来,“大公司技术博客”将良心推送国内外大公司的优质干货文,如 Facebook, Google, Medium, GitHub、Hacker News、Quora(嗯,我知道很多国外的文章你点不开,或者是英文的你懒得看)等...

Java 中的增强 for 循环(for each)的实现原理与坑 - 后端 - 掘金
在JAVA中,遍历集合和数组一般有以下三种形式: for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i) + ","); } Iterator iterator ...

使用 Java 写文件的 N 种方法 - 后端 - 掘金
Writing a new file or copying a file is a task which every developer is required to perform. Java provides many different ways to ...

Commons.lang 工具 - 后端 - 掘金
Commons.lang工具 Apache Commons是一个非常有用的工具包,解决各种实际的通用问题,项目提供了相当丰富的API。我们了解到的Commons Lang只是众多API的比较核心的一小部分而已。 commons.lang跟java.lan...

教你配置使用阿里云 Maven 库,体验秒下 jar 包的快感 - 后端 - 掘金
教你配置使用阿里云 Maven 库,体验秒下 jar 包的快感 2017-02-19 #maven #java 鉴于国内的网络环境,从默认 Maven 库下载 jar 包是非常的痛苦。 速度慢就不说了,还经常是...

Java:Annotation(注解)-- 原理到案例 - 后端 - 掘金
图片取自文末推荐文章 本文章涉及代码已放到github上annotation-study 1.Annotation为何而来 What:Annotation干嘛的 ...

Java 内存泄漏与内存溢出详解 - 后端 - 掘金
内存泄漏指你用malloc或new申请了一块内存,但是没有通过free或delete将内存释放,导致这块内存一直处于占用状态。 ...

如何阅读JAVA 字节码(一) - 掘金
  在阅读JAVA字节码以前,需要回忆一下JVM的结构:  Java字节码的信息主要在Java栈中间体现,下图来自网络,描述了java栈的基本结构:  值得注意的是方法区,在Java虚拟机...

一篇文章带你走通 OkHttp+Retrofit+Rxjava - Android - 掘金
一篇文章带你走通 OkHttp+Retrofit+Rxjava @(Android)[android] ...

Java 开发者应该学习的 8 个工具 - Android - 掘金
在Stormpath(一款用户管理和认证服务),我们认真对待质量和效率。任何一个优秀的工匠,仅仅拥有天赋是不够的,你在工作中还需要正确的工具。工程学不仅仅是科学,更是艺术。所以,在Stormpath,尽管我们拥有天赋,我们仍不断寻找所需的有用的工具。我们的工程...

Java 并发编程:线程池的使用 - 后端 - 掘金
在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有...

Java 虚拟机体系结构 - 阅读 - 掘金
学习Java的同学注意了!!!   学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码: 23230...

Java 泛型详解 - 阅读 - 掘金
由于博客的特殊显示原因,尖括号用()代替 泛型概述 Java泛型(generics...

干货满满的阿里巴巴 Java 开发手册 - 后端 - 掘金
阿里巴巴 Java 开发手册 阿里巴巴集团技术部首次向业界公开 Java 开发手册,总共五大章节,干货满满,大多数规约还有说明以及正、反代码实例,对于新手而言能从中学到很多知识。还有就是非常适合全公司推广,利于项目维护以及规范开发...

java/android 设计模式 - 行为模式之责任链模式 - Android - 掘金
故名思义责任链模式中存在一个链式结构,链式结构:多外节点首尾相连,每个节点都可以被拆分再连接。具体什么是责任链模式呢。它使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将这个对象连成一条链,并沿着这个条链传递该请求,直到有一个对象处理它...

java 并发编程之 ConcurrentHashMap - 后端 - 掘金
引言 ConcurrentHashMap是线程安全并且高效的HashMap,在并发编程中经常可见它的使用,在开始分析它的高并发实现机制前,先讲讲废话,看看它是如何被引入jdk的。 为什么引入Con...

重走 Java 基础之 Streams(四) - 后端 - 掘金
接上篇重走Java基础之Streams (三) 使用Map.Entry的流在转换后保留初始值 当你有一个Stream,你需要映射转换但是想保留初始值,你可以使用下面的实用程序方法将’Stream`映射到Map.Entry: public sta...

Java 泛型知识点:泛型类、泛型接口和泛型方法 - 后端 - 掘金
有许多原因促成了泛型的出现,而最引人注意的一个原因,就是为了创建容器类。 泛型类 容器类应该算得上最具重用性的类库之一。先来看一个没有泛型的情况下的容器类如何定义: public class Container { private String key...

深入浅出: Java 回调机制 (异步) - 后端 - 掘金
Writer      :BYSocket(泥沙砖瓦浆木匠) 什么是回调?今天傻傻地截了张图问了下,然后被陈大牛回答道“就一个回调…”。此时千万个草泥马飞奔而过(逃 哈哈,看着源码,享受着这种回调在代码上的作用...

Java 的 23 种设计模式全解析 - 后端 - 掘金
一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、...

Java 对象创建的流程 - 掘金
Object obj = new Object(); 虚拟机遇到 new 指令 检查指令的参数是否能在常量池中定位到一个类的符号引用 检查符号引用是否已经被加载、解析和初始化。如果没有则进行类加载。 虚拟机为新生对象分配内存(对象所需的内存大小在类加载...

[java 手把手教程][第二季]java 后端博客系统文章系统——No6 - 掘金
本期主要是文章保存功能,涉及到草稿、文章发布、历史这三个要点。 项目github地址:https://github.com/pc859107393/SpringMvcMybatis 实时项目同步的地址是国内的码云:https://git.oschina.net...

Java 中的阻塞队列 - Android - 掘金

  1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元...

【Java 高手经验】我的 Java 问题排查工具单 - 后端 - 掘金
我的问题排查工具箱 前言 平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常觉得帮助很大的工具,大家一起进步。 闲话...

Java面试题收集 - 掘金
不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题。 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Client/Server),客户端/服务端,桌面应用程序 2...

JavaEE面试题收集 - 掘金
Java EE平台构建于Java SE平台之上,Java EE平台提供一组API和运行环境来开发和运行大规模的,多层的,可扩展的,可靠的和安全的网络应用程序。这里会不断收集和更新JavaEE基础相关的面试题,目前已收集84题。 1.Javascript中常用的...

Java 并发:深入分析 synchronized 的实现原理 - 后端 - 掘金
原文出处: cmsblogs 记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,...

阿里巴巴 Java 开发手册 笔记及重点 - 后端 - 掘金
编程规约 POJO 类中布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。假设定义一个 boolean 的 isSuccess 属性,它的方法 Getter 被IDE生成为 isSuccess(),RP...

Java:Annotation(注解)-- 原理到案例 - 后端 - 掘金
图片取自文末推荐文章 本文章涉及代码已放到github上annotation-study 1.Annotation为何而来 What:Annotation干嘛的 ...

Java 进阶面试问题列表 - 后端 - 掘金
翻译自Java developer interview questions: The hard part ...

使用 Java 读取文件的 N 种方法 - 后端 - 掘金
Reading a file is a task which every developer is required to perform. Java provides many different ways to read a file according ...

Java 中的增强 for 循环(for each)的实现原理与坑 - 后端 - 掘金
在JAVA中,遍历集合和数组一般有以下三种形式: for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i) + ","); } Iterator iterator ...

使用 Java 写文件的 N 种方法 - 后端 - 掘金
Writing a new file or copying a file is a task which every developer is required to perform. Java provides many different ways to ...

JAVA 基础 - ENUM 枚举的简单使用 - 掘金
介绍 枚举可以用来表示一系列状态,比如颜色、星期、订单状态等,虽然功能很小,但大大方便了开发。 //定义颜色枚举类 public enum Color { RED, GREEN, BLANK, YELLOW } Color.RED Color...

JAVA 基础 - clone浅克隆与深克隆 - 掘金
介绍 一直以来只知道Java有clone方法,该方法属于Object的,对于什么是浅克隆与深克隆就比较模糊了,现在就来补充学习一下。 概念 浅拷贝(浅克隆)复制出来的对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。 深拷贝...

Java 面向对象知识点整理 - Android - 掘金
不定期更新,欢迎指正 1. 重载、重写和隐藏 1). 重载(overload): 方法重载就是多个方法名称相同但是参数类型或者参数...

重新认识 java(七) - final 关键字 - 后端 - 掘金
你总以为你会了,其实你只是一知半解。 final 关键字概览 final关键字可用于声明属性、方法、参数和类,分别表示属性不可变、方法不可覆盖、参数不可变和类不可...

20 个非常有用的 Java 程序片段 - 后端 - 掘金
下面是20个非常有用的Java程序片段,希望能对你有用。 1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric string int i = Integer.par...

Java 的 23 种设计模式全解析 - 后端 - 掘金
一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、...

译-Java内存管理白皮书 - 掘金
说明 有关java并发可以看这里:https://yuedu.baidu.com/ebook/d09e3e28854769eae009581b6bd97f192279bf23  要学习Java或者任意一门技术,我觉得最好的是从官网的资料...

设计模式系列-单例模式 - 掘金
通常Java实现单例模式有很多种方式,大致可分为懒汉模式和饿汉模式,其主要区别是实例延迟加载的问题,当然单例模式往往也关注其他问题,如:线程安全等。下面试图来总结单例模式的这些注意点。 代码地址:GitHub本文首发于:lishuo.me 饿汉模式 publ...

Java 语法清单 - 后端 - 掘金
Java 语法清单翻译自 egek92 的 JavaCheatSheet,从属于笔者的 Java 入门与实践系列。时间仓促,笔者只是简单翻译了些标题与内容整理,支持原作者请前往原文点赞。需要注意的是,此文在 Reddit 上也引起了广泛的讨论,此文讲解的语法要...

【BetterJava】Java 编程须知:语音规范、库、特性、框架、工具和资源 - 后端 - 掘金
Style Java 传统的代码风格是被用来编写非常复杂的企业级 JavaBean。新的代码风格看起来会更加整洁,更加正确,并且更加简单。 Structs 对我们程序员来说,包装数据是最简单的事情之一。下面是传统的通过定义一个 JavaBean 的实...

【Java 高手经验】我的 Java 问题排查工具单 - 后端 - 掘金
我的问题排查工具箱 前言 平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常觉得帮助很大的工具,大家一起进步。 闲话...

深入分析 Java Web 中的中文编码问题 - 后端 - 掘金
深入分析 Java Web 中的中文编码问题 背景: 编码问题一直困扰着程序开发人...

我的 Java 后端书架 - 后端 - 掘金
我的Java后端书架 1月前 5079 本书架主要针对Java后端开发与架构。 更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可能很著名,但干涩枯燥,喋喋不休的把你带回到大学课堂上昏昏欲睡,不...

JMM 简介及 volatile 的说明 - 后端 - 掘金
为了屏蔽各个操作系统和硬件的差异,使得 Java 程序在所有平台下都能达到一致的内存访问效果,所以 Java 虚拟机定义了一种 Java 内存模型。 Java 内存模型的作用 ...

死磕 Java 并发 - 深入分析 synchronized 的实现原理 - 后端 - 掘金
记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着我们学习的进行我们知道sy...

Java Web 技术总结系列 - 后端 - 掘金
近期收到几位读者的来信,说之前写的一个Java Web系列反响不错,但是一篇一盘翻着看不太方便,今天我将这些文章整理下做个索引的目录,后期有新的文章加入也会更新这篇目录。这些文章的内容来自我的日常工作,在解决问题的时候遇到值得记录的知识点,就会暂时记录下来,并...

从零开始学习Linux部署Java web项目 - 掘金
前言 最近越来越发现需要学习的东西太多了,前几天公司服务器出现问题,需要对服务器硬件进行维护,当然服务器上的服务需要部署到另一个服务器上。这对于我来说是很陌生的,虽然这件工作没有让我去做,但是还是很好奇web项目是如何部署到服务器的。其实很早之前就想学习这些,...

Java Web 开发之动态代理 - 后端 - 掘金
动态代理通俗解释: A接口有c方法,类B实现A接口,原本应该是执行B类中的c方法,可现在不这样做,可以先声明产生B类的代理类B',由它来冒充B类的“兄弟”并“实现”A接口, 对外界来说B'应该也有c方法,可当真正调用它的时候, ...

干货满满的阿里巴巴 Java 开发手册 - 后端 - 掘金
阿里巴巴 Java 开发手册 阿里巴巴集团技术部首次向业界公开 Java 开发手册,总共五大章节,干货满满,大多数规约还有说明以及正、反代码实例,对于新手而言能从中学到很多知识。还有就是非常适合全公司推广,利于项目维护以及规范开发...

Java 8 的 Nashorn 脚本引擎教程 - 后端 - 掘金
本文为了解所有关于 Nashorn Javascript 引擎易于理解的代码例子。 The Nashorn Javascript 引擎是Java SE 8的一部分,它与其它像Google V8 (它是Google Chrome 和Node.js的引擎)的独立引...

java 之反射技术及其应用 - 后端 - 掘金
翻阅了很多资料想查看一个比较通俗易懂的关于java反射机制的理解,但是想要从概念中去理解一项技术,可能有点困难,所以先将理论型知识贴出来,后面,慢慢来理解。 反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能...

JVM 源码分析之 System.currentTimeMillis 及 nanoTime 原理详解 - 后端 - 掘金
概述 上周@望陶问了我一个现象很诡异的问题,说JDK7和JDK8下的System.nanoTime()输出完全不一样,而且差距还非常大,是不是两个版本里的实现不一样,之前我也没注意过这个细节,觉得非常奇怪,于是自己也在本地mac机器上马上测试了一下,得到如下输...

如何把 Java Web 应用放在 docker 容器中运行 - 掘金
本文适合 docker 零基础,且希望使用 docker 运行 Java Web 应用的人士。因为是傻瓜教程,这里没有使用 docker 的高级功能,本教程旨在用最简单方法实现目标。 安装 dockerDocker 的安装资源文件存放在Amazon,由于国内...

java 中的内存模型 - 后端 - 掘金
概述 在java中应为不同的目的可以将java划分为两种内存模型:gc内存模型。并发内存模型。 gc内存模型 java与c++之间有一堵由内存动态分配与垃圾收集技术所围成的“高墙”。墙外面的人想进去,墙里面的人想出来。 java在执行java程序的过程中会把它...

java 中的 AIO - 后端 - 掘金
简介 jdk7中新增了一些与文件(网络)I/O相关的一些api。这些API被称为NIO.2,或称为AIO(Asynchronous I/O)。AIO最大的一个特性就是异步能力,这种能力对socket与文件I/O都起作用。AIO其实是一种在读写操作结束之前允许进...

java 性能优化:35 个小细节,让你提升 java 代码的运行效率 - 后端 - 掘金
文章来源:http://blog.csdn.net/richard_jason/article/details/53004974作者:Richard_Jason代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行...

Java 技术之类加载机制 - Android - 掘金
类加载机制是 Java 语言的一大亮点,使得 Java 类可以被动态加载到 Java 虚拟机中。 这次我们抛开术语和概念,从例子入手,由浅入深地讲解 Java 的类加载机制。 本文涉及知识点:双亲委托机制、Boo...

面试题思考:try 代码块中含 return 语句时,代码执行顺序 - 掘金
刷java面试题偶然看到这类问题(try/finally中含有return时的执行顺序),觉得挺有意思于是小小的研究了一下,希望经过我添油加醋天马行空之后,能给你带来一定的帮助 原题 try {} 里有一个return语句,那么紧跟在这个try后的final...

Java 内存模型 - Android - 掘金
转自Java 内存模型 Java 内存模型规范了 Java 虚拟机与计算机内存是如何协同工作的。Java 虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型——又称为 Jav...

可能是最通俗易懂的 Java 位操作运算讲解 - Android - 掘金
Java 位操作这是一项很基础很基础的知识内容,在所有 Android 和 Java 开发者的学习之路上,大家都接触过,但是实际运用的场景却很少见,很多人估计都忘记有这个知识点了。事实上,在 C/C++ 开发领域因为与硬件的联系更紧密,所以位操作运算应用的更普...

Java 语法糖 - 自动装箱与泛型 - Android - 掘金
前言 如标题,在日常编程中自动装箱、泛型可以说是我们在程序中使用非常频繁地特性,但是这些特性都被称之为语法糖,也就是说这些特性其实并没有什么语言底层上的 支持或者改变什么的,只是一些简单的语法支持...

源码分析之ThreadPoolExecutor - 掘金
线程池在多线程编程的中可谓是个利器,使用线程池会大大提高多线程的效率。原因是使用线程池相对于new Thread有效避免了线程创建和销毁的开销。 在Java中一般来说通过Executors来创建所需要的线程池,如:Executors.newFixedThrea...

Java 并发编程:volatile 关键字解析 - Android - 掘金
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机...

我们用错 Java 的增强 For 循环了? - Android - 掘金
foreach用错了? 错误认识 学了那么久的Java了,我们大部分人对forea...

Java 的 equals 与 hashcode 对比分析 - Android - 掘金
在阅读《Effective Java》第3章里读到了关于 equals() 和 hashcode() 的一些介绍,这两个方法是很多Java程序员容易弄混的,因此本文针对这两个方法的用法和具体实现来做一些介绍。 ...

Java 内存分配与回收机制 - Android - 掘金
这篇文章主要讲Java内存的分配与回收机制,主要包括Java运行时的数据区域、对象的创建、垃圾收集算法与回收策略。参考的书籍是周志明老师的《深入理解Java虚拟机》,笔者只是基于书中的内容对其总结概括并图文化。这部分内容几乎都是理解性的,为了便于理解和记忆所以...

如何实现一个Java Class字节解析器(Golang版) - 掘金
最近在写一个私人项目,名字叫做SmallVM,SmallVM的目的在于通过实现一个轻量级的Java虚拟机,加深对Java虚拟机的认知和理解。在Java虚拟机加载类的过程中,需要对Class文件进行解析,我曾经单独实现过一个Java版的Class字节解析器Cla...

Java 线程池详解 - Android - 掘金
本篇文章讲述Java中的线程池问题,同样适用于Android中的线程池使用。本篇文章参考:Java线程池分析,Java中的线程池。以上两位大神的博客有很多干货,强烈推荐关注学习。 一、概述 ...

聊聊 Java 内部类 - Android - 掘金
一.磨叽磨叽Java值传递与引用传递 “在Java里面参数传递都是按值传递”即:按值传递是传递的值的拷贝,按引用传递其实传递的是引用的地址值,所以统称按值传递。 ...

JVM 之垃圾收集器 - Android - 掘金
首先了解两个概念 并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 并发(Concurrent):指用户线程与垃圾收集器线程同时执行(但不一定是并行的,可能会交替执行),用户程序在...

了解 Java 中的 I/O 系统 - Android - 掘金
概览 图片项目地址 可以复制下来 进行修改 IO’s Demos Code 编码乱码原因: 机器中的编码都是 二进制编码 显示的时候 为了让人...

深入了解 Java 之垃圾回收 - Android - 掘金
讲解之前先插一句,对于Java的一些变量的存储简单了解一下: 1、本地变量(局部变量):在方法体, 构造体内部定义的变量,在方法结束的时候就被摧毁(虚拟机栈的局部变量表) 2、静态变量(类变量、全局变量;+ final...

探索 Java 隐藏的开销 - Android - 掘金
随着 Android 引入 Java 8 的一些功能,请记住每一个标准库的 API 和语言特性都会带来一些相关的开销,这很重要。虽然设备越来越快而且内存越来越多,代码大小和性能优化之间仍然是有着紧密关联的。这篇 360AnDev 的演讲会探索一些 Java 功...

Manacher 算法及其 Java 实现 - Android - 掘金
说明 现给定一个已知的字符串str[],现在想要在O(n)的时间复杂度之内求出一个最长的回文子字符串(正着和倒着顺序读一致)。 Manacher最早发现了可以用O(n)的时间复杂度来解决该问题,所以这种方法称之为Manacher...

Java 线程通信内存模型 --- 主内存与工作内存 - Android - 掘金
多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请求数,而TPS值与程序的并发能力有着...

深入了解 Java 之虚拟机内存 - Android - 掘金
在讨论JVM内存区域分析之前,先来看一下Java程序具体执行的过程: Java 程序的执行过程:Java 源代码文件(.Java文件)-> Java Compiler(Java编译器)->Java 字节码文件(.class文件)->类加...

JVM 性能调优监控工具 jps、jstack、jmap、jhat、jstat 等使用详解 - 后端 - 掘金
javap 和 javac ...

你了解泛型通配符与上下界吗? - Android - 掘金
在进入主题之前, 我们先简单说一下 Java 的泛型(generics)。它是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter)。声明的类型参数在使用时用具体的类型来替换。泛型最主要的应用是在JDK 5中的新集合...

Final of Java,这一篇差不多了 - Android - 掘金
前言 在Java中final是一个关键字,最近在研究和整理项目的代码,发现final出现的频次有些高,而且有些用法也是不知乎所以,所以一直也想整理一篇关于Java中final关键字使用和原理的文章,来梳理一下自己的思路。同时,也...

Java 性能调优之容器扩容问题 - Android - 掘金
在Java和Android编程中,我们经常使用类似ArrayList,HashMap等这些容器。这些容器少则存储几条,多则上千甚至更多。作为性能调优的一部分,容器调优往往被我们忽略,本文将尝试探索阐述一些关于容器调优中的扩容问题。虽然以Java为例,但是也同样...

详细深入分析 Java ClassLoader 工作机制 - 掘金
申明:本文首发于 详细深入分析 ClassLoader 工作机制 ,如有转载,请务必注明原出处即可,谢谢配合。 详细深入分析 Java ClassLoader 工作机制 什么是 ClassLoader ? 大家都知道,当我们写好一个 Java 程序之后,不...

Java 内存从分配到泄露 - Android - 掘金
引言 如果你被问及Android内存泄露,而你只能背出几种常见的内存泄露的场景以及解决方案,却不能从更深层次的原理上去解释它,那么是时候补一补Java虚拟机的基础知识了。文章较长,请耐心阅读,相信会有...

思维导图学 Java 虚拟机 - 后端 - 掘金
说明 本篇文章是对周志明的《深入理解Java虚拟机》的读书笔记,思维导图使用Mindjet MindManager。曾经看到过这样一句话: 关于教育,有一个经典的定义是:把在学校里学到的东西全部忘掉,最终留下的东西。 ...

Java 进阶资源汇总 - 后端 - 掘金
Java经过将近20年的发展壮大,框架体系已经丰满俱全;从前端到后台到数据库,从智能终端到大数据都能看到Java的身影,个人感觉做后台进要求越来越高,越来越难。 为什么现在Java程序员越来越难做,一是Java框架体系众多,学习成本提高,每一个细分问题...

Java 动态代理的两种实现方法 - 后端 - 掘金
AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执行。不同的切入时机对应不同的Interceptor的种类,如...

从源码分析 String、StringBuilder、StringBuffer 的区别 - 后端 - 掘金
从源码分析 String、StringBuilder、StringBuffer 的区别...

Java 并发——volatile - 后端 - 掘金
JVM内存管理 概述 volatile 是轻量级的 synchronized。volatile 作用于共享变量,具备了“锁”的特性,这是为了确保共享变量能被准确和一致性地更新,这是 volatile 的可见性。同时,它也阉割了 scn...

计算机程序的思维逻辑 (77) - 异步任务执行服务 - 掘金
Java并发包提供了一套框架,大大简化了执行异步任务所需的开发,本节我们就来初步探讨这套框架。 在之前的介绍中,线程Thread既表示要执行的任务,又表示执行的机制,而这套框架引入了一个"执行服务"的概念,它将"任务的提交&quo...

Tomcat怎么实现异步Servlet - 掘金
有时Servlet在生成响应报文前必须等待某些耗时的操作,比如在等待一个可用的JDBC连接或等待一个远程Web服务的响应。对于这种情况servlet规范中定义了异步处理方式,由于Servlet中等待阻塞会导致Web容器整体的处理能力低下,所以对于比较耗时的操作...

你真的了解 volatile 关键字吗? - Android - 掘金
volatile关键字经常在并发编程中使用,其特性是保证可见性以及有序性,但是关于volatile的使用仍然要小心,这需要明白volatile关键字的特性及实现的原理,这也是本篇文章的主要内容。 ...

二叉查找树实现原理分析 - 后端 - 掘金
二叉查找树是一种能将链表插入的灵活性和有序数组查找的高效性结合起来的一种重要的数据结构,它是我们后面学习红黑树和 AVL 树的基础,本文我们就先来看一下二叉查找树的实现原理。...

Java Jvm 垃圾回收与类加载相关面试知识总结 - 后端 - 掘金
(1)内存模型以及分区,需要详细到每个区放什么。 堆:Java虚拟机管理内存中最大的一块,线程共享区域。所有对象实例和数组都在堆上分配内存空间。 栈...

搞懂 nginx 的 rewrite 模块 - 后端 - 掘金
之前在配置nginx时,总是遇到rewrite指令的last和break标识的问题,看到的资料大都是last 基本上都用这个 Flag,break 中止 Rewirte,不在继续匹配。看完之后还是有点懵,后来看了下rewrite模块的文档,终于搞懂了,这个模块...

JVM 性能调优监控工具 jps、jstack、jmap、jhat、jstat 等使用详解 - 后端 - 掘金
javap 和 javac ...

深入理解 Java 虚拟机总结 - Android - 掘金
Java 虚拟机总结...

最长回文子串—4 种解法(Java 版) - 阅读 - 掘金
题目 给定一个字符串,求它的最长回文子串的长度。 暴力破解 最容易想到的就是暴力破解,求出每一个子串,之后判断是不是回文,找到最长的那个。 publi...

数据结构与算法 - 图论 - 后端 - 掘金
这篇文章是我当时在上数据结构课的时候做的笔记的,现在重新整理了一下,也算是一篇简单的科普文。基本概念:图论〔Graph Theory〕是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某...

wait/notify 底层实现分析 - 后端 - 掘金
深入分析Object.wait/notify实现机制 同一个obj对象调用wait、notify方法。 当线程A执行wait方法时,该线程被挂起。 当线程B执行notify方法时...

计算机程序的思维逻辑 (71) - 显式锁 - 掘金
在66节,我们介绍了利用synchronized实现锁,我们提到了synchronized的一些局限性,本节,我们探讨Java并发包中的显式锁,它可以解决synchronized的限制。 Java并发包中的显式锁接口和类位于包java.util.concurr...

字符串查找算法总结(暴力匹配、KMP 算法、Boyer-Moore 算法和 Sunday 算法) - 掘金
可进入我的博客查看原文。 字符串匹配是字符串的一种基本操作:给定一个长度为 M 的文本和一个长度为 N 的模式串,在文本中找到一个和该模式相符的子字符串,并返回该字字符串在文本中的位置。 KMP 算法,全称是 Knuth-Morris-Pratt 算法,以三个...

程序员必备利器——Java程序性能分析工具Java VisualVM(Visual GC) - 掘金
程序员必备利器——Java程序性能分析工具Java VisualVM(Visual GC) VisualVM 是一款免费的\集成了多个JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量...

Java 泛型详解 - 后端 - 掘金
泛型是 Java 中一个非常重要的知识点,在 Java 集合类框架中泛型被广泛应用。本文我们将从零开始来看一下 Java 泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除。...

各大公司 Java 后端开发面试题总结 - 后端 - 掘金
ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它...

Java 进阶资源汇总 - 后端 - 掘金
Java经过将近20年的发展壮大,框架体系已经丰满俱全;从前端到后台到数据库,从智能终端到大数据都能看到Java的身影,个人感觉做后台进要求越来越高,越来越难。 为什么现在Java程序员越来越难做,一是Java框架体系众多,学习成本提高,每一个细分问题...

深入理解 Java 之 JVM 堆内存分配 - 后端 - 掘金
Java堆是被所有线程共享的一块内存区域,所有对象和数组都在堆上进行内存分配。为了进行高效的垃圾回收,虚拟机把堆内存划分成新生代、老年代和永久代(1.8中无永久代,使用metaspace实现)三块区域。 Java把内存分成两种:栈内存和堆内存。关于...

想不想通过一线互联网公司面试? - Android - 掘金
国内一线互联网公司内部面试题库 以下面试题来自于百度、小米、乐视、美团、58、猎豹、360、新浪、搜狐内部题库 熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。 一、java基础 1.接口的意义(百度) 规范、扩展、回调 2.抽象类的意义...

手把手教你 Java 性能优化 - 后端 - 掘金
来了唯品会一年多,不少时间花在与服务化框架、业务应用的性能的缠斗上。 前几天正好趁着中生代技术的十月十城技术沙龙,把脑海中关于性能优化的记忆全部理了一遍....讲完回家,又本着认真严谨的态度再理了一遍,终于成为现在这份66页的PPT。 范围 ...

40 个 Java 多线程问题总结 - 后端 - 掘金
前言 这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。 这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的...

关于 Java 面试,你应该准备这些知识点 - 后端 - 掘金
简书 占小狼转载请注明原创出处,谢谢!如果读完觉得有收获的话,欢迎点赞加关注 自天子以至于庶人,壹是皆以修身为本 《礼记·大学》 ...

常见数据结构与算法整理总结(下) - 阅读 - 掘金
这篇文章是常见数据结构与算法整理总结的下篇,上一篇主要是对常见的数据结构进行集中总结,这篇主要是总结一些常见的算法相关内容,文章中如有错误,欢迎指出。 一、概述 二、查找算法 三、排序算法 四、其它算法 五、常见算法题 六、总...

设计模式系列 - 简单工厂模式 - 后端 - 掘金
JAVA设计模式系列: 单例模式 观察者模式 ...

常见的安全算法 - 后端 - 掘金
本文整理了常见的安全算法,包括MD5、SHA、DES、AES、RSA等,并写了完整的工具类(Java 版),工具类包含测试。 一、数字摘要算法 ...

Vim 简明教程【CoolShell】 - 工具资源 - 掘金
vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《 Learn Vim Progress...

Java 垃圾回收 (GC) 泛读 - Android - 掘金
Java 垃圾回收(GC) 泛读 文章地址: https://segmentfault.com/a/1190000008922319 ...

你真的了解 volatile 关键字吗? - Android - 掘金
volatile关键字经常在并发编程中使用,其特性是保证可见性以及有序性,但是关于volatile的使用仍然要小心,这需要明白volatile关键字的特性及实现的原理,这也是本篇文章的主要内容。 ...

【Java 调优之路】Tomcat 性能优化 - 后端 - 掘金
Java性能优化原则:代码运算性能、内存回收、应用配置(影响Java程序主要原因是垃圾回收) 代码层优化:避免过多循环嵌套、调用和复杂逻辑 调优内容: 1、增加最大连接数 2、调整工作模式 3、启用gzip压缩 4、调整JVM内存大小 5、作为We...

在 Java 路上,我看过的一些书、源码和框架(持续更新) - 后端 - 掘金
简书 占小狼转载请注明原创出处,谢谢!如果读完觉得有收获的话,欢迎点赞加关注 物有本末,事有终始,知所先后,则近道矣 ...

JVM 之垃圾收集器 - Android - 掘金
首先了解两个概念 并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 并发(Concurrent):指用户线程与垃圾收集器线程同时执行(但不一定是并行的,可能会交替执行),用户程序在...

开发笔记之你弄不懂的JAVA反射机制 - 掘金
_寒鸦, FrigidCrow我热爱编程, 代码让我快乐, 我认为上帝就是最强大的程序员, "Hello World"真正的开辟了一个世界. JAVA反射机制, 啧啧, 当你看到这几个字的时候就有一种不好的预感, 没错, 这个东西是不怎...

探究高可用服务端架构的优秀资料索引 - 后端 - 掘金
探究高可用服务端架构的优秀资料索引从属于笔者的 服务端应用程序开发与系统架构 系列文章;最近随着公司业务的发展与终端用户的增加,保证系统的高可用性也日渐成为团队考虑的重要因素,笔者也把去年以来看的一些文章归集整理,抛砖引玉,如果有其他优秀的望不吝赐教。 探究...

Java 工程师成神之路 - 后端 - 掘金
针对本文,博主最近在写《成神之路系列文章》 ,分章分节介绍所有知识点。欢迎关注。一、基础篇1.1 JVM1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收http://www.jcp.org/en/jsr/detail?id=133ht...

深入了解 Java 之垃圾回收 - Android - 掘金
讲解之前先插一句,对于Java的一些变量的存储简单了解一下: 1、本地变量(局部变量):在方法体, 构造体内部定义的变量,在方法结束的时候就被摧毁(虚拟机栈的局部变量表) 2、静态变量(类变量、全局变量;+ final...

各大公司 Java 后端开发面试题总结 - 后端 - 掘金
ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它...

JVM 内存溢出实例 - 实战 JVM(二) - 后端 - 掘金
JVM规范规定,除了程序计数器,虚拟机其他内存区域均会发生内存溢出的可能,OutOfMemoryError(OOM) 本文目的:     1、通过代码人为造成OOM,让大家跟了解JVM运行时各区存储的内容。     2、...

一个事半功倍的 Java 反射库 - Android - 掘金
在Java和Android中,我们常常会使用反射来达到一些兼容的目的。Java原生提供的反射很是麻烦,使用起来很是不方便。比如我们想要调UserManager的静态方法get,使用原生的实现如下 try { final Method m = ...

java 之反射技术及其应用 - 后端 - 掘金
翻阅了很多资料想查看一个比较通俗易懂的关于java反射机制的理解,但是想要从概念中去理解一项技术,可能有点困难,所以先将理论型知识贴出来,后面,慢慢来理解。 反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能...

Java Web 开发之动态代理 - 后端 - 掘金
动态代理通俗解释: A接口有c方法,类B实现A接口,原本应该是执行B类中的c方法,可现在不这样做,可以先声明产生B类的代理类B',由它来冒充B类的“兄弟”并“实现”A接口, 对外界来说B'应该也有c方法,可当真正调用它的时候, ...

深入理解 Java 8 Lambda(类库篇 - Streams API,Collectors 和并行) - 后端 - 掘金
关于 深入理解 Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法) ...

Java 多线程干货系列—(一)Java 多线程基础 | 掘金技术征文 - 掘金
原本地址:Java多线程干货系列—(一)Java多线程基础博客地址:http://tengj.top/ 前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧。 正...

译-Java内存管理白皮书 - 掘金
说明 有关java并发可以看这里:https://yuedu.baidu.com/ebook/d09e3e28854769eae009581b6bd97f192279bf23  要学习Java或者任意一门技术,我觉得最好的是从官网的资料...

理解 Java 中 HashMap 的工作原理 - 后端 - 掘金
+++ date = "2016-05-25T23:10:44+08:00" description = "理解Java中HashMap的工作原理" draft = false tags = ["Hash","HashMap"] title = "理解Java...

Java面试重难点剖析(不断更新) - 掘金
1、高并发访问数据库优化方法 2、 java finalize方法总结、GC执行finalize的过程 3、简单理解Socket及TCP/IP、Http、Socket的区别 4、 java之yield(),sleep(),wait()区别详解-备忘笔记 5、线...

Java 基础思维导图,让 Java 不再难懂 - 工具资源 - 掘金
思维导图的好处 最近看了一些文章的思维导图,发现思维导图真是个强大的工具。了解了思维导图的作用之后,觉得把它运用到java上应该是个不错的想法,这样回顾知识点的时候一目了然,快速知道自己的短板。 思维导图不仅仅只有简单明了这个好处,它还能加深人对主题的印象和...

Netty 源码 (三):I/O 模型和 Java NIO 底层原理 - 后端 - 掘金
上一篇文章我们主要讲解了Netty的Channel和Pipeline,了解到不同的Channel可以提供基于不同网络协议的通信处理.既然涉及到网络通信,就不得不说一下多线程,同步异步相关的知识了.Netty的网络模型是多线程的Reactor模式,所有I/O请求...

基于 SSH 的个人信息管理系统 - 后端 - 掘金
前言: 功能模块:登录,注册,个人信息管理,通讯录管理,日程安排,文件管理。 要求: (1) 登录及注册页面要有输入校验,采取struts2的校验框架实现,即-validation.xml配置文件的形...

单点登录系统 SSO 解析及开发小结 - 后端 - 掘金
在分布式系统架构下是每一个系统都是由一个团队进行维护,每个系统都是单独部署运行一个单独的应用容器如Tomcat,所以,不能将用户的登录信息保存到session中。 多个tomcat的session一般是不能共享的,虽然我们可以利用tomcat自身的se...

使用 Java 读取文件的 N 种方法 - 后端 - 掘金
Reading a file is a task which every developer is required to perform. Java provides many different ways to read a file according ...

Java 并发:深入分析 synchronized 的实现原理 - 后端 - 掘金
原文出处: cmsblogs 记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,...

【Java 高手经验】我的 Java 问题排查工具单 - 后端 - 掘金
我的问题排查工具箱 前言 平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常觉得帮助很大的工具,大家一起进步。 闲话...

【BetterJava】Java 编程须知:语音规范、库、特性、框架、工具和资源 - 后端 - 掘金
Style Java 传统的代码风格是被用来编写非常复杂的企业级 JavaBean。新的代码风格看起来会更加整洁,更加正确,并且更加简单。 Structs 对我们程序员来说,包装数据是最简单的事情之一。下面是传统的通过定义一个 JavaBean 的实...

使用WebMagic+ActiveMQ+Quartz实现全国城镇天气自动更新的API接口开发 - 掘金
一 简介 我在之前的某个项目中需要用到天气接口,但是遍观网上的天气API要么是收费的要么有使用次数或者频率的限制。因此我决定根据网上的专业天气网站结合爬虫技术自己开发一套天气自动定时抓取更新的API接口 (1)技术依赖: SSM(Spring+Spring ...

java 的动态代理机制详解 - 后端 - 掘金
在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而A...

深入分析 Java I/O 的工作机制 - 后端 - 掘金
Java 的 I/O 类库的基本架构 I/O 问题是任何编程语言都无法回避的问题,可以说 I/O 问题是整个人机交互的核心问题,因为 I/O 是机器获取和交换信息的主要渠道。在当今这个数据大爆炸时代,I/O 问题尤其突出,很容易成为一个性能瓶颈。正因如此,所以...

登录那些事儿 - 后端 - 掘金
也不知道是什么原因,刚开始不久的职业生涯,在技术这条路走着走着,和「登录」总是有着一个不解之缘。还记得当初学习Web编程的时候么?不管是Java、.Net、PHP,继经典「Hello World」之后,要写的很有可能就是「登录」功能。至今「登录」的问题还是让我...

面试的角度诠释 Java 工程师(二) - 后端 - 掘金
续言: 相信每一位简书的作者,都会有我这样的思考:怎么写好一篇文章?或者怎么写好一篇技术类的文章?我就先说说我的感悟吧,写文章其实和写程序是一样的。为什么我会说它们是一样的?简单思考一下...... ...

面试的角度诠释 Java 工程师(一) - 后端 - 掘金
前言: 我相信每一个程序员都是为了生活而努力着的。很多人因为兴趣,从此踏上了这条‘烧脑大行动’的金桥;也有很多人因为梦想和执着,奋不顾身融入这个职业;还有很多人因为被现实逼得太无奈,不得不为自己、为家人、为未来谋这么一条坎坷的路...

基于 mybatis+spring+spring mvc+springfox(swagger) 架构的服务接口后端 - 后端 - 掘金
基于mybatis+spring+spring mvc+springfox(swagger)架构的服务接口后端 所用技术 spring springmvc mybatis spring Fox: 生成API在线文档 ...

JVM 的类初始化机制 - 掘金
当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解...

看完就会用的 GIT 操作图解分析 - 后端 - 掘金
无论你是前端还是后台,无论是运维还是移动端研发,GIT是逃避不了的东西,当然你说你要用SVN,那不在这次的讨论范围之内。不多说,请看下文GIT图解分析,10分钟学会git操作,当然下面的教程是为实战为主,会跟你在别的网站看到的不一样。 ...

“不要相信一个程序员在加班时间写出的代码” 这是真的吗? - 阅读 - 掘金
作为一个最底层的程序员,我先记录一些只有底层程序员才会知道的事情。如果多年后,我违背 自己进入这个行业的初心,走上管理岗位,也能回想起一些禁忌,避免一些错误。 其中最重要的就是这条:不要相信一个程序员在加班时间写出来的代码。 ...

Java I/O 总结 - 后端 - 掘金
Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。 数据流是一串连续不断的数据的集合,就象水管里的水流,在水管的一端一...

Spring Boot 揭秘与实战(六) 消息队列篇 - RabbitMQ - 掘金
本文,讲解 Spring Boot 如何集成 RabbitMQ,实现消息队列。 博客地址:http://blog.720ui.com/ 什么是 RabitMQ RabbitMQ 是一个在 AMQP 基础上完整的,可复用的企业消息系统。 关于 RabbitMQ...

关于 Java Map 的几个常见问题 - 后端 - 掘金
列举几个关于Java Map的常见问题并给出答案。 1. 将Map转化成List Map接口提供了三种collection:key set,value set 和 key-value ...

Java多线程干货系列—(四)volatile关键字| 掘金技术征文 - 掘金
原本地址:Java多线程干货系列—(四)volatile关键字博客地址:http://tengj.top/ 前言 今天介绍下volatile关键字,volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因...

Gradle 学习系列之一——Gradle 快速入门 - 阅读 - 掘金
这是一个关于Gradle的学习系列,其中包含以下文章: Gradle快速入门 创建Task的多种方法 读懂Gradle语法 增量式构建...

Java 如何实现后端分页 - 后端 - 掘金
工具:myeclipse ,数据库:Oracle ,jar包:classes12.jar 实现的功能:对客户的增删改查,展示客户列表,一页显示十条客户数据,实现分条件查询(根据ID,名称等) ...

HashMap 深度分析 - 后端 - 掘金
这次主要是分析下HashMap的工作原理,为什么我会拿这个东西出来分析,原因很简单,以前我面试的时候,偶尔问起HashMap,99%的程序员都知道HashMap,基本都会用Hashmap,这其中不仅仅包括刚毕业的大学生,也包括已经工作5年,甚至是10年的程序员...

Java 反射机制笔记 - 后端 - 掘金
很多时候,Java程序运行中,我们需要在运行时了解类的信息,得到类的实例,并且进而继续得到类的方法,构造函数,权限,变量以及其他信息。这时候我们需要用到一门技术,java反射 反射说白了,就是把我们的一些...

Springboot 整合 Mybatis 的完整 Web 案例 - 后端 - 掘金
这篇文章是 Springboot 相关最佳实践,总结了 SpringBoot 相关并且详解下 Springboot 如何整合 Mybatis。...

MyBatis 从扫描 package 到 mapper 接口动态代理的实现 - 后端 - 掘金
突然想到 mybatis 的 mapper 接口没有实现类,却能在 service 层直接注入并调用其方法操作数据库,之前只是知道这么做就行,出于好奇网上找了一下答案跟着源码走了一遍。 <bean id="userMapper" class="org.m...

源码分析之 LinkedHashMap - 后端 - 掘金
概念 LinkedHashMap也是Java集合框架的一员,是HashMap的子类。LinkedHashMap可以保存插入顺序,底层是通过HashMap的哈希表和双向链表保存数据。 ...

Java 泛型知识点:泛型类、泛型接口和泛型方法 - 后端 - 掘金
有许多原因促成了泛型的出现,而最引人注意的一个原因,就是为了创建容器类。 泛型类 容器类应该算得上最具重用性的类库之一。先来看一个没有泛型的情况下的容器类如何定义: public class Container { private String key...

从代码层读懂 HashMap 的实现原理 - 后端 - 掘金
概述 Hashmap继承于AbstractMap,实现了Map、Cloneable、Java.io.Serializable接口。它的key、value都可以为null,映射不是有序的。 ...

【Spring】详解 Spring MVC 中不同格式的 POST 请求参数的数据类型转换过程 - 后端 - 掘金
你也许写过很多Controller,那你可曾和我一样好奇最初字符串格式的HTTP请求参数如何转化成类型各异的Controller方法参数? 引子:假设现在有一个Long型的请求参数,需要转化为OffsetDateTime类型的方法参数,请问如...

深入理解 Java 之 JVM 堆内存分配 - 后端 - 掘金
Java堆是被所有线程共享的一块内存区域,所有对象和数组都在堆上进行内存分配。为了进行高效的垃圾回收,虚拟机把堆内存划分成新生代、老年代和永久代(1.8中无永久代,使用metaspace实现)三块区域。 Java把内存分成两种:栈内存和堆内存。关于...

Java 中间件入门教程 - 后端 - 掘金
前言 中间件 ...

SpringMVC 干货系列:从零搭建 SpringMVC+mybatis(一):maven WEB 项目的搭建 | 掘金技术征文 - 掘金
原本地址:springMVC干货系列:从零搭建springMVC+mybatis(一):maven WEB项目的搭建博客地址:http://tengj.top/ 前言 今天手把手来教大家如何搭建基于Maven的SpringMVC WEB项目。 正文 开发环境...

Java 抽象类与 oop 三大特征 - 后端 - 掘金
面向对象主要有三大特性: 继承和多态、 封装 。 一、抽象类 在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它 只有声明,而没有具体的实现 。抽象方法的声明格式为:abstract void fun(); 抽象方法 必须用 abstract...

Java 泛型全解析 - 后端 - 掘金
把一个对象放进集合中之后,集合就会忘记这个对象的数据类型,当再次取出该对象时,该对象的编译类型就变成Object类型了 为了解决上面的问题,就引出了泛型这一个概念 泛型接口和类 ...

Java 内存分配 - 后端 - 掘金
学习Java的同学注意了!!!  学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:254078193  我们一起学Java! 栈、堆、常量池虽同属Java内存分配时操作的区域,但其适用范围和功用却大...

用二级缓存提高缓存命中率和内存使用效率 - 后端 - 掘金
起因 一直都没找到二级缓存在php中应用的比较好的资料和案例,由于范凯RobbinWeb 应用的缓存设计模式和Hibernate二级缓存的启示,记下这篇二级缓存在Eloquent ORM中的应用。 过程 比如博客的首页调用最新的20篇文章,相信不少同学在刚开始...

服务端指南 数据存储篇 | 选择合适的数据存储方案 | 掘金技术征文 - 掘金
在服务端会经常遇到数据存储的选型问题,是选择使用关系型数据库 MySQL,还是选择内存数据库 Redis,还是选择文档数据库 MongoDB,还是选择列族数据库 HBase, 还是选择全文搜索引擎 ElasticSearch 呢?本节主要介绍如何选择合适的数据...

SpringMVC 干货系列:从零搭建 SpringMVC+mybatis(二):springMVC 原理解析及常用注解 | 掘金技术征文 - 掘金
原本地址:springMVC干货系列:从零搭建springMVC+mybatis(二):springMVC原理解析及常用注解博客地址:http://tengj.top/ 前言 上篇文章介绍了maven WEB 项目的搭建,基本的配置文件也都贴出来了,今天就来...

Java 人员正确使用 IntelliJ IDEA 的方式 | 掘金技术征文 - 掘金
原本地址:Java人员正确使用 IntelliJ IDEA的方式博客地址:http://tengj.top/ 前言 博主是Java开发人员,以前一直都用myeclipse来开发的,说实话感觉myeclipse毫无美感可言,后来经过同事介绍,认识了IDEA,一...

SpringMVC 干货系列:从零搭建 SpringMVC+mybatis(三):Spring 两大核心之 IOC/DI 学习 | 掘金技术征文 - 掘金
原本地址:SpringMVC干货系列:从零搭建SpringMVC+mybatis(三):Spring两大核心之IOC/DI学习博客地址:http://tengj.top/ 前言 上篇讲了SpringMVC的实现原理以及常用的注解,其实里面都用到的spring...

为什么 trim 出来的 abc 与字符串 abc 不双等 - 后端 - 掘金
问题 public static void main(String[] args) { String a = "abc"; String b = "12abc"; String c = " abc"; St...

几种任务调度的 Java 实现方法与比较 - 后端 - 掘金
前言 任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。本文由浅入深介绍四种任务调度的 Java 实现: Timer ScheduledExecutor 开源工具包 Quartz 开源工具包 JCronTa...

干货满满的阿里巴巴 Java 开发手册 - 后端 - 掘金
阿里巴巴 Java 开发手册 阿里巴巴集团技术部首次向业界公开 Java 开发手册,总共五大章节,干货满满,大多数规约还有说明以及正、反代码实例,对于新手而言能从中学到很多知识。还有就是非常适合全公司推广,利于项目维护以及规范开发...

java 之反射技术及其应用 - 后端 - 掘金
翻阅了很多资料想查看一个比较通俗易懂的关于java反射机制的理解,但是想要从概念中去理解一项技术,可能有点困难,所以先将理论型知识贴出来,后面,慢慢来理解。 反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能...

JAVA 对象比较中的坑 - 后端 - 掘金
一、背景 本文是为了解决以下几个疑问: == 和equals的差别实现compareTo 和 equal...

通过项目逐步深入了解Spring MVC(一)|掘金技术征文 - 掘金
相关阅读: 本文档和项目代码地址:https://github.com/zhisheng17/springmvc 如果觉得不错的话,欢迎给个 star , 如果你想完善这个项目的话,你也可以 fork 后修改然后推送给我。 转载请注明出处和保留以上文字! 了...

关于 Java 的反射机制,你需要理解这些.. - 后端 - 掘金
反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。【翻译于 官方文档】 本篇将从以下几个方面讲述反射的知识: ...

【Java 集合系列】---ArrayList - 后端 - 掘金
开篇前言--ArrayList中的基本方法 前面的博文中,博主主要简单介绍java集合的总体架构,在接下来的博文中,博主将详细介绍里面的各个类,通过demo、对比,来对java集合类进行更加深入的理解和认识,希望可以帮助有有需要的小伙伴们`(*...

计算机程序的思维逻辑 (52) - 抽象容器类 - 掘金
从38节到51节,我们介绍的都是具体的容器类,上节我们提到,所有具体容器类其实都不是从头构建的,它们都继承了一些抽象容器类。这些抽象类提供了容器接口的部分实现,方便了Java具体容器类的实现,理解它们有助于进一步理解具体容器类。 此外,通过继承抽象类,自定义的...

Java 问题排查工具箱 - 后端 - 掘金
转载自:http://hellojava.info/?p=517 作者:阿里毕玄 问题排查除了最重要的解决思路和逻辑推导能力外,工具也是不可缺少的一部分,一个好用的工具可以事半功倍,甚至在某些情况下会因为没有相应的工具而压根就没法继续进行下去,这篇文章就来讲讲...

Clean Code, Clean Log - 后端 - 掘金
最近提的 PR 都有关于 Log 的 comment,不能忍,以下内容总结整理自明佳的 Comment 和网络资料,只是为了以后提 PR 之前过来扫一眼,尽量避免 Log 上的疏忽,不一定适用于所有人。 在程序中的适当位置打 Log 的重要性就不用多说了,...

如何正确使用 Java 异常处理机制 - 后端 - 掘金
文章来源:leaforbook - 如何正确使用Java异常处理机制作者:士别三日第一节 异常处理概述第二节 Java异常处理类2.1 Throwable2.1.1 Throwable有五种构造方法2.1.2 Throwable的所有成员方法2.2 Error...

Java 调优经验谈 - 后端 - 掘金
目录 调优准备 性能分析 性能调优 其他优化建议 JVM参数进阶 对于调优这个事情来说,一般就是三个过程: 性能监控:问题没有发生,你并不知道你需要调优什么?此时需要一些系统、应用的监控工具来发现问题。 性能分析:问题已经发生,但是你并不知道问题...

java 性能优化:35 个小细节,让你提升 java 代码的运行效率 - 后端 - 掘金
文章来源:http://blog.csdn.net/richard_jason/article/details/53004974作者:Richard_Jason代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行...

Java 调试那点事 - 后端 - 掘金
该文章来自于阿里巴巴技术协会(ATA)精选文章。 Java调试概述 程序猿都调式或者debug过Java代码吧?都体会过被PM,PD,测试,业务同学们围观debug吧?说调试,先看看调试严格定义是什么。引用Wikipedia定义: 调试(De-bug),又...

重写 equal() 时为什么也得重写 hashCode() 之深度解读 equal 方法与 hashCode 方法渊源 - 后端 - 掘金
转载请注明出处查看图片: http://blog.csdn.net/javazejian/article/details/51348320 今天这篇文章我们打算来深度解读一下equal方法以及其关联方法hashCode(),我们准备从以下几点入手分析: ...

JAVA 之旅(三十五)——完结篇,终于把 JAVA 写完了,真感概呐! - 刘桂林的博客 - 博客频道 - CSDN.NET - Android - 掘金
这篇博文只是用来水经验的,写这个系列是因为我自己的java本身也不是特别好,所以重温了一下,但是手比较痒于是就写出了这三十多篇博客了,而且收到的好评也不错,于是就一直坚持了下来,非常感谢各位小伙伴哦! JAVA之旅(一)——基本常识,JAVA概念...

Java 中的集合类的深入研究 - Android - 掘金
基本功能 Arrays & Collections 常用的方法 //Arrays.java public static <t> List<t> asList(T... a) { return new ArrayList<...

Java 中的静态绑定和动态绑定 - 阅读 - 掘金
一个Java程序的执行要经过编译和执行(解释)这两个步骤,同时Java又是面向对象的编程语言。当子类和父类存在同一个方法,子类重写了父类的方法,程序在运行时调用方法是调用父类的方法还是子类的重写方法呢,这应该是我们在初学Java时遇到的问题。这里首先我们将确定...

Java 常考面试题 - Android - 掘金
Java 常考面试题...

玩转 Java 反射 - Android - 掘金
类加载器 - 什么是类加载器 - 类加载器的职责 - 类加载器的组成 反射 - 什么是反射 - 如何使用反射 - 反射在Android中的应用 什么是类加载器 当Java程序要使用某个类时,如果...

一道在知乎很火的 Java 题——如何输出 ab - Android - 掘金
这是一个源自知乎的话题,原贴链接:一道百度的面试题,有大神会嘛? 虽然我不是大神,但我也点进去看了一下,思考了一会之后有了一些思路,然后去看其它人的答案的时候果然全都已经被各路大神们先想到并贴出来了,所以我就不去凑热闹写重复答案了,整理一下网友们的智慧在这里...

Java 垃圾回收机制 (GC) 详解 - 后端 - 掘金
Runtime.getRuntime().gc() 这两种方法用于显示通知JVM可以进行一次垃圾回收,但垃圾回收机制具体在什么时间运行是无法预知的。 意思是 通知回收之后 不一定被回收 。而且这个方法对资源消耗较大尽量不要显式去调用这个方法 触发主G...

Java synchronized 关键字用法解析 - 后端 - 掘金
多线程编程时,同步是一个很重要的问题。如何保证代码不受并发访问问题的影响,Java语言提供了多种解决方法。其中一种便是使用synchronized关键字。 从JDK1.0开始,Java中每个对象都有一个内部锁,synchronized关键字就是...

最近 5 年 133 个 Java 面试问题列表 - 后端 - 掘金
来源:https://github.com/YHGui/easy-job/blob/master/面试题/133个Java常见面试题.mdJava 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别(Str...

Google 的 Java 编程风格指南(Java 编码规范) - 阅读 - 掘金
这份文档是Google Java编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合Google的Java编程风格。与其它的编程风格指南一样,这里所讨论的不仅仅是编码格式美不美观的问题, 同时也讨论一些约定及编码标准。然而,...

java 数组及其内存管理 - 后端 - 掘金
在 java 中,数组变量是一个引用类型的变量,数组是静态的,即初始化后,它索占的内存空间、数组长度是不变的。而且必须先初始化后使用。了解他的内存管理,方便我们对其的使用。...

Java 中的纤程库 - Quasar - 后端 - 掘金
最近遇到的一个问题大概是微服务架构中经常会遇到的一个问题: 服务 A 是我们开发的系统,它的业务需要调用 B、C、D 等多个服务,这些服务是通过http的访问提供的。 问题是 B、C、D 这些服务都是第三方提供的,不能保证它们的响应时间,快的话...

在 Java 路上,我看过的一些书、源码和框架(持续更新) - 后端 - 掘金
简书 占小狼转载请注明原创出处,谢谢!如果读完觉得有收获的话,欢迎点赞加关注 物有本末,事有终始,知所先后,则近道矣 ...

YYCache 设计思路 | Garan no dou - 阅读 - 掘金
...

spring 核心框架体系结构(jar 包依赖) - 后端 - 掘金
很多人都在用spring开发Java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下一次创建相同类型的工程时也不知道要配置哪些spring的依赖...

netty 源码分析之拆包器的奥秘 - 后端 - 掘金
这里的拆包,拆的不是肉包,不是菜包,也不是小笼包,而是数据包 为什么要粘包拆包 为什么要粘包 首先你得了解一下TCP/IP协议,在...

Java 并发编程之 volatile 关键字解析 - 后端 - 掘金
原文出处海子 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java ...

Spring 切面简记及项目应用 (spring aop) - 后端 - 掘金
spring aop简要介绍 荐 顶 原 Spring切面简记及应用(spring aop) 概念 面向切面编程:把逻辑代码和处理琐碎事务的代码分离开,以便能够分离复杂度。 切面(AOP)术语 1.连接点(Joinpoint) ...

Java 开发者应该学习的 8 个工具 - Android - 掘金
在Stormpath(一款用户管理和认证服务),我们认真对待质量和效率。任何一个优秀的工匠,仅仅拥有天赋是不够的,你在工作中还需要正确的工具。工程学不仅仅是科学,更是艺术。所以,在Stormpath,尽管我们拥有天赋,我们仍不断寻找所需的有用的工具。我们的工程...

【死磕 Java 并发】—–深入分析 volatile 的实现原理 - 后端 - 掘金
通过前面一章我们了解了synchronized是一个重量级的锁,虽然JVM对它做了很多优化,而下面介绍的volatile则是轻量级的synchronized。如果一个变量使用volatile,则它比使用synchronized的成本更加低,因为它不会引起线程上...

【Java编码规范】《阿里巴巴Java开发手册(正式版)》发布! - Android - 掘金
2017年开春之际,诚意献上重磅大礼:阿里巴巴Java开发手册,首次公开阿里官方Java代码规范标准。这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大降低代码维护成本。 点击下载《 阿里巴巴Java开发手册》...

干货满满的阿里巴巴 Java 开发手册 - 后端 - 掘金
阿里巴巴 Java 开发手册 阿里巴巴集团技术部首次向业界公开 Java 开发手册,总共五大章节,干货满满,大多数规约还有说明以及正、反代码实例,对于新手而言能从中学到很多知识。还有就是非常适合全公司推广,利于项目维护以及规范开发...

ConcurrentHashMap 分析 (jdk 1.7) - 后端 - 掘金
HashMap分析: http://www.begincode.net/blog/55 先看一段代码 public class Main { pri...

java 并发编程之 ConcurrentHashMap - 后端 - 掘金
引言 ConcurrentHashMap是线程安全并且高效的HashMap,在并发编程中经常可见它的使用,在开始分析它的高并发实现机制前,先讲讲废话,看看它是如何被引入jdk的。 为什么引入Con...

Netty 4.x User Guide 中文翻译 - 后端 - 掘金
官网链接请戳:User guide for 4.x,由ZephyrJung翻译表示Google翻译现在真是异常强大,我甚至觉得以后再碰到英文文档都不用人翻了,全文粘过去好了翻译也是一个学习的过程,大家共同努力吧有空不妨到黑客派社区看看,大牛坐镇,应有尽有 ...

线程池,是时候做个了结了! - Android - 掘金
一直想不到一个好标题,刚刚灵光一现,想到这个标题,尽管有点任性,就姑且先这样吧。 前言:大概在我刚入职的时候,我的第一次面试,面试官问我实现多线程...

从一段奇怪代码开始说 - Android - 掘金
看Fresco的代码中,有这样的一个类: /** ...

Java 动态代理 - 后端 - 掘金
代理模式是设计模式中一个非常重要的模式,代理模式有两个角色,一个是代理类,一个是委托类,委托类也是真正的业务类,两者都有相同的接口; 代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个...

原创翻译-Java 8新特性 - 掘金
前言   本篇翻译自oracle官网的JDK8 新特性,但是并不包含 JavaFx和安全方面的更新。 JAVA8中的新特性   Java平台的标准版第8版本是一个重大的发布版本。这篇文档概述了JAVA SE8 和...

通俗易懂权限管理模块设计 - Java - 后端 - 掘金
最近一直在做CMS系统,发现一些内容其实都是重复出现的,例如权限管理模块。权限管理模块就是为了管理用户是否有权利访问某个权限,如果不能则拒绝访问。其实Java中已经有很成熟的权限管理框架,例如 S...

springmvc 开发时 IDE 的使用和最简化配置 - 掘金
IDE的选用 采用的方案是:用Intellij IDEA来编辑代码,用MyEclipse来编译和部署.原先小程序开发时就采用 webstorm编辑+微信开发工具编译运行 的组合开发方式,而且电脑16G内存毫无压力,所以就傲娇地左剑右刀地上阵. MyEcli...

Java Worker 设计模式 - 后端 - 掘金
Worker模式 想解决的问题 异步执行一些任务,有返回或无返回结果 使用动机 有些时候想执行一些异步任务,如异步网络通信、daemon任务,但又不想去管理这任务的生命周。这个...

比 pegdown 更快的 Java markdown 解析器。 - 后端 - 掘金
flexmark-java is a Java implementation of CommonMark 0.27 spec parser using the blocks first, inlines after Markdown parsing archi...

java 知识之 注解的使用和解析 - 后端 - 掘金
在java中,例如重写父类方法使用的 @Override,就是注解。在开发中使用的框架,大部分也是用了注解。通过注解可以是代码更加简洁,更加清晰。在jdk1.5后,引入了注解。 官方概念:java提供了已汇总源程序中的元素关联任...

面试旧敌之 HashMap : JDK 1.8 后它通过什么提升性能 - Android - 掘金
上篇文章我们介绍了 HashMap 的主要特点和关键方法源码解读,这篇文章我们介绍 HashMap 在 JDK1.8 新增树形化相关的内容。 读完本文你将了解到: 点击查看 Java 集合框架深入理解 系列 - - 乾杯 传统 HashMap...

[手把手教程][第二季]java 后端博客系统第一章 - 掘金
转眼间时间就从9月份到现在的十一月份了。这段时间说实话做的有意义的事情太少。现在还是单身··· 闲话直接跳过了,嗯,手把手教程第二季已经来了,第一季就不用再写什么第一季汇总资源之类的记录了,直接扔出第一季的总集合地址。[手把手教程][JavaWeb]第一季点击...

java 多线程核心技术梳理 (附源码) - 后端 - 掘金
本文对多线程基础知识进行梳理,主要包括多线程的基本使用,对象及变量的并发访问,线程间通信,lock的使用,定时器,单例模式,以及线程状态与线程组。 写在前面 花了一周时间阅读《java多线程编程核心技术》(高洪岩 著),本文算是此书的整理归纳,书中几乎所有示例...

Java 内存溢出 (OOM) 异常完全指南 - 后端 - 掘金
我的职业生涯中见过数以千计的内存溢出异常均与下文中的8种情况相关。本文分析什么情况会导致这些异常出现,提供示例代码的同时为您提供解决指南。Nikita Salnikov-TarnovskiPlumbr Co-Founder and VP of Engineer...

Java 方向如何准备 BAT 技术面试答案 (汇总版) - 后端 - 掘金
这个主题的内容之前分三个篇幅分享过,导致网络上传播的比较分散,所以本篇做了一个汇总,同时对部分内容及答案做了修改,欢迎朋友们吐槽、转发。因为篇幅长度和时间的原因,部分答案我没有亲自总结。 1.面向对象和面向过程的区别 ...

JAVA 本地缓存 LocalCache 的 2 种实现 - 后端 - 掘金
Java LocalCache 使用场景 在Java应用中,对于访问频率高,更新少的...

活儿好又性感的在线 Mock 平台 - Easy Mock - 掘金
今天的数据,感谢大家的支持,有问题可以加QQ群反馈,实时答复:595325417 什么是 Easy Mock Easy Mock 是一个极其简单、高效、�可视化、并且能快速生成模拟数据的在线 mock 服务。以项目管理的方式组织 Mock List,能帮助我们...

最简大数据Redis-3.2.8 - 掘金
0.0 前言 NoSQL,泛指非关系型数据库。不是NO-SQL,而是NOT-ONLY-SQL,不要把NoSQL数据库和关系型数据库对立起来,二者有不同的应用场景,目前来看NoSQL想完全取代关系型数据库不太可能。打算讨论三种NoSQL数据库。 键值类 - R...

被人忽视的面向对象的六大原则 - 后端 - 掘金
1.前言 作为文集的第一篇,我觉得有必要介绍一下大概的写作规划。整个文集将分为三个部分,分别是面向对象六大原则、23种设计模式,以及MVC、MVP、MVVM三种应用架构的介绍和使用。 如果...

计算机程序的思维逻辑 (82) - 理解 ThreadLocal - 掘金
本节,我们来探讨一个特殊的概念,线程本地变量,在Java中的实现是类ThreadLocal,它是什么?有什么用?实现原理是什么?让我们接下来逐步探讨。 基本概念和用法 线程本地变量是说,每个线程都有同一个变量的独有拷贝,这个概念听上去比较难以理解,我们先直接来...

浅入浅出 Java Web - 后端 - 掘金
JSP & Servlet 00-00、序 00-01、相关软件的安装 00-02、理解HTTP ...

十分钟理解 Java 中的弱引用 - 后端 - 掘金

  1. What——什么是弱引用?     Java中的弱引用具体指的是java.lang.ref.WeakReference<T>类,我们首先来看一下官方文档对它做的说明: 弱引用对象的存在不会阻止它所指向的对象变被垃...

译-Java内存管理白皮书 - 掘金
说明 有关java并发可以看这里:https://yuedu.baidu.com/ebook/d09e3e28854769eae009581b6bd97f192279bf23  要学习Java或者任意一门技术,我觉得最好的是从官网的资料...

计算机程序的思维逻辑 (81) - 并发同步协作工具 - 掘金
我们在67节和68节实现了线程的一些基本协作机制,那是利用基本的wait/notify实现的,我们提到,Java并发包中有一些专门的同步工具类,本节,我们就来探讨它们。 我们要探讨的工具类包括: 读写锁ReentrantReadWriteLock 信号量Se...

35 个 Java 代码性能优化总结 - 后端 - 掘金
前言 代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,...

别怕, 手把手带你撕、拉、扯下 SpringMVC 的外衣 - 后端 - 掘金
前言 提到框架,就不得不提一下看源码,我们平时总是想求大神带我们飞,然而看源码就是一个向大神学习的最直接的一种方式,然而我们每次鼓起勇气看源码前是这样的 ...

Java面试重难点剖析(不断更新) - 掘金
1、高并发访问数据库优化方法 2、 java finalize方法总结、GC执行finalize的过程 3、简单理解Socket及TCP/IP、Http、Socket的区别 4、 java之yield(),sleep(),wait()区别详解-备忘笔记 5、线...

计算机程序的思维逻辑 (78) - 线程池 - 掘金
上节,我们初步探讨了Java并发包中的任务执行服务,实际中,任务执行服务的主要实现机制是线程池,本节,我们就来探讨线程池。 基本概念 线程池,顾名思义,就是一个线程的池子,里面有若干线程,它们的目的就是执行提交给线程池的任务,执行完一个任务后不会退出,而是继续...

Java 设计模式娓娓道来 - 后端 - 掘金
DesignPattern 参照Hongyang的CSDN博客所写。如有错误欢迎指正,如有侵权,请联系我删除。 Java 设计模式(观察者模式、工厂模式、单例模式、策略模式、命令模式、装饰者模式、外...

从 G1 设计到堆空间调整 - 后端 - 掘金
引言:如果你在使用Java8,或者计划使用Java9,有很大可能是要么在评估G1垃圾收集器,要么已经在使用它。本文将从G1设计开始向您介绍系统介绍G1垃圾收集器如何工作,助您更加系统的学习了解G1。 本文选自《Java性能调优指南》。 G1设计 G1将J...

【玩转 JVM 性能优化】Java 的伸缩性 - 后端 - 掘金
感谢朋友【吴杰】投递本文。 JVM性能优化系列文章由Eva Andearsson在javaworld上发表共计5篇文章,ImportNew上有前4篇译文。本文(第5篇)由吴杰翻译自:javaworld 。 很多程序员在解决JVM性能问题的时候,花开了...

如何捕获 java 线程中的逃逸的异常 - 后端 - 掘金
在java线程中,在run方法中,我们要在run()方法中,把一切的异常有处理掉,也就try-catch掉。不能让这个线程抛出异常,因为如果我们不使用特殊的方式的话,我们是无法捕获从这个线程中逃逸的异常的。异常一旦抛出了,那么这个线程就会停止运行,但是不会影响...

单页应用 - Token 验证 - 掘金
第一次接触单页应用,记录公司项目关于Token验证知识. Token的工作原理 Token工作原理 1. 登录时候,客户端通过用户名与密码请求登录 2. 服务端收到请求区验证用户名与密码 3. 验证通过,服务端会签发一个Token,再把这个Token发给客户端...

Java 注解介绍 - 掘金
前言 Java注解介绍 1. 注解中最重要的三个类 Annotation、ElementType、RetentionPolicy这三个类是注解中最重要的类,没有这三个类就没有注解,其中Annotation是接口,其余两个是枚举。所有的注解都基于这三个类,所谓的...

在 Java 路上,我看过的一些书、源码和框架(持续更新) - 后端 - 掘金
简书 占小狼转载请注明原创出处,谢谢!如果读完觉得有收获的话,欢迎点赞加关注 物有本末,事有终始,知所先后,则近道矣 ...

【译】2017 年你不能错过的 Java 类库 - 后端 - 掘金
各位读者好, 这篇文章是在我看过 Andres Almiray 的一篇介绍文后,整理出来的。 因为内容非常好,我便将它整理成参考列表分享给大家, 同时附上各个库的特性简介和示例。 请欣赏! Gui...

Java 方向如何准备 BAT 技术面试答案 (汇总版) - 后端 - 掘金
这个主题的内容之前分三个篇幅分享过,导致网络上传播的比较分散,所以本篇做了一个汇总,同时对部分内容及答案做了修改,欢迎朋友们吐槽、转发。因为篇幅长度和时间的原因,部分答案我没有亲自总结。 1.面向对象和面向过程的区别 ...

百度开源的分布式 id 生成器 - 后端 - 掘金
In English UidGenerator是Java实现的, 基于Snowflake算法的唯一ID生成器。UidGenerator以组件形式工作在应用项目中, 支持自定义workerId位数和...

后端 API 接口优化 - 后端 - 掘金
目前所在项目组开发的是一款母婴产品,集工具和社区属性。截止本文发布,注册用户接近7000万,首屏接口日访问量过百万。在首屏中,会给用户展现不同的数据,比如每日任务,宝宝(婴儿)每日概述,胎教音乐,运动视频,热帖等模块。首屏接口性能的好坏,将直接影响到app的使...

源码分析之ArrayList - 掘金
概念 ArrayList是我们常用的集合类,是基于数组实现的。不同于数组的是ArrayList可以动态扩容。 类结构 ArrayList是Java集合框架List接口的一个实现类。提供了一些操作数组元素的方法。 实现List接口同时,也实现了 RandomAc...

Java面试重难点剖析(不断更新) - 掘金
1、高并发访问数据库优化方法 2、 java finalize方法总结、GC执行finalize的过程 3、简单理解Socket及TCP/IP、Http、Socket的区别 4、 java之yield(),sleep(),wait()区别详解-备忘笔记 5、线...

串讲 AbstractQueuedSynchronizer 及 JUC 工具类 - 后端 - 掘金
Concurrent包下有许多工具类,包括共享语义和独占语义的,他们都是以AbstractQueuedSynchronizer(以下简称AQS)为基础构建的,在类内部都包含了一个继承AQS的类。 ...

从JDK源码角度看并发竞争的超时 - 掘金
JDK中的并发框架提供的另外一个优秀机制是锁获取超时的支持,当大量线程对某一锁竞争时可能导致某些线程在很长一段时间都获取不了锁,在某些场景下可能希望如果线程在一段时间内不能成功获取锁就取消对该锁的等待以提高性能,这时就需要用到超时机制。在JDK1.5之前并没有...

一篇文章教会你,如何做到简历中要求的 “要有扎实的 Java 基础 - 后端 - 掘金
本文来自于一次和群里猿友的交流,具体的情况且听LZ慢慢道来。 一日,LZ在群里发话,“招人啦。” 然某群友曰,“群主,俺想去。” ...

深入理解 Java 类加载机制 - 后端 - 掘金
1 前言 在深入理解Java类加载机制(一)一文中,我们了解了类的加载和连接过程,这篇文章重点讲述类的初始化过程,这样,我们就将类的加载机制弄明白了。 2 初始化时机 ...

深入浅出 java 同步器 AQS - 后端 - 掘金
前言 在java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock、ReadWriteLock(实现类ReentrantReadWriteLock),内部实现都依赖Abst...

Java 虚拟机 结构原理与运行时数据区域 - 后端 - 掘金
前言 本来计划要写Android内存优化的,觉得有必要在此之前介绍一下Java虚拟机的相关知识,Java虚拟机也并不是三言两语能够介绍完的,因此开了Java虚拟机系列,这一篇文章我们来学习Java虚拟机的...

深入理解 Java 之 JVM 堆内存分配 - 后端 - 掘金
Java堆是被所有线程共享的一块内存区域,所有对象和数组都在堆上进行内存分配。为了进行高效的垃圾回收,虚拟机把堆内存划分成新生代、老年代和永久代(1.8中无永久代,使用metaspace实现)三块区域。 ...

深入理解 Java 线程池:ThreadPoolExecutor - 后端 - 掘金
博客链接:http://www.ideabuffer.cn/2017/04/04/深入理解Java线程池:ThreadPoolExecutor/ 线程池介绍 在w...

思维导图学 Java 虚拟机 - 后端 - 掘金
说明 本篇文章是对周志明的《深入理解Java虚拟机》的读书笔记,思维导图使用Mindjet MindManager。曾经看到过这样一句话: 关于教育,有一个经典的定义是:把在学校里学到的东西全部忘掉,最终留下的东西。 ...

Servlet 解析 - 后端 - 掘金
JAVA WEB 技术是当今主流的互联网WEB应用技术之一,而Servlet则是JAVA WEB 中的核心基础。最近在看了《深入分析Java Web技术内幕》(许令波 著)这本书发现了以前没有看到的内容,就想对书中的内容进行总结,也方便自己以后的回顾,所以就有...

理解 Java 中 HashMap 的工作原理 - 后端 - 掘金
+++ date = "2016-05-25T23:10:44+08:00" description = "理解Java中HashMap的工作原理" draft = false tags = ["Hash","HashMap"] title = "理解Java...

Java使用读写锁替代同步锁 - 掘金
应用情景 前一阵有个做反抄袭检测的小伙伴问了我一个问题。 --- 在多线程里就是有个变量,我需要读取它来判断是否给它写入一些信息。 打算加锁,但是如果读取时候加入readlock,写入时候加入writelock, 这样做可能读写不同步。但是如果一起加lock效...

JVM(四)——OutOfMemoryError 异常 - 掘金
JVM(四)——OutOfMemoryError 异常 在 Java 运行时的数据区域 中我已经知道了抛出 OutOfMemoryError 异常的区域在 虚拟机栈、本地方法栈、java堆和方法区几个区域。 Java 堆溢出 Java 堆是创建对象的区域...

AbstractQueuedSynchronizer 超详细原理解析 - 后端 - 掘金
今天我们来研究学习一下AbstractQueuedSynchronizer类的相关原理,java.util.concurrent包中很多类都依赖于这个类所提供的队列式的同步器,比如说常用的ReentranLock,Semaphore和CountDownLatc...

【Java 高手经验】我的 Java 问题排查工具单 - 后端 - 掘金
我的问题排查工具箱 前言 平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常觉得帮助很大的工具,大家一起进步。 闲话...

Java 并发:深入分析 synchronized 的实现原理 - 后端 - 掘金
原文出处: cmsblogs 记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,...

Java 内存泄漏与内存溢出详解 - 后端 - 掘金
内存泄漏指你用malloc或new申请了一块内存,但是没有通过free或delete将内存释放,导致这块内存一直处于占用状态。 ...

ThreadPoolExecutor 源码解析 - 后端 - 掘金
引言 为什么引入线程池技术? 对于服务端的程序,经常面对的是执行时间较短、工作内容较为单一的任务,需要服务端快速处理并返回接口。假若服务端每次接收到一个任务,就创...

【死磕 Java 并发】—–Java 内存模型之分析 volatile - 后端 - 掘金
前篇博客【死磕Java并发】—–深入分析volatile的实现原理 中已经阐述了volatile的特性了: volatile可见性;对一个volatile的读,总可以看到对这个变量最终的写; volatile原子性...

谈谈 ThreadLocal - 后端 - 掘金
Java并发编程实战 一书在介绍ThreadLocal类时(第3章),书中有这么两段话,在我初次阅读时不知道如何去理解。 ThreadLocal对象通常用于防止对可变的单实例变量(Singleton)或全局变量进行共享。 ...

分析 Java 延迟与周期任务的实现原理 - 后端 - 掘金
Java并发编程源码分析系列: 分析Java线程池的创建 分析Java线程池执行原理 ...

wait/notify 底层实现分析 - 后端 - 掘金
深入分析Object.wait/notify实现机制 同一个obj对象调用wait、notify方法。 当线程A执行wait方法时,该线程被挂起。 当线程B执行notify方法时...

源码分析之 ThreadLocal - 后端 - 掘金
概念描述 ThreadLocal的作用是提供了线程内的局部变量。当使用ThreadLocal变量在多线程环境下,每个线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。JDK API 描述: ...

精选文集推荐
Web note ad 1