![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java技术
程序员一木
这个作者很懒,什么都没留下…
展开
-
Java 设计类和接口的七条优秀实践清单
Java 设计类和接口的七条优秀实践清单写Java时,其实就是在写各种类和接口,那么在设计类和接口的时候,有哪些优秀实践呢?本文结合《Effective Java》第四章《类和接口》和自己的理解及实践,讲解了设计Java类和接口的优秀指导原则,供您参考。清单1 - 使类和成员的可访问性最小化这个原则,其实就是我们常说的“封装”,也是软件设计的基本原则之一。类与类之间,隐藏...原创 2019-05-15 18:48:59 · 270 阅读 · 0 评论 -
Java程序员,最常用的20%技术有哪些?
Java程序员,最常用的20%技术有哪些?Java 工程师必备学习资源获取方式:Java工程师必备学习资源免费获取 。无套路!!!完全免费!!!Java 该学习那些东西很多初学者或者有经验的开发者都会陷入这个泥潭:“不知道自己该学什么?”。我觉得最简单的方法就是你去招聘官网上看看公司要求什么技能,比如初级 Java 工程师的招聘要求肯定和高级 Java 工程师的招聘要求不一样,阿里的 Ja...原创 2019-05-12 12:36:10 · 456 阅读 · 1 评论 -
如何准备一场Java面试?
如何准备一场Java面试?不论是校招还是社招都避免不了各种面试、笔试,如何去准备这些东西就显得格外重要。不论是笔试还是面试都是有章可循的,我这个“有章可循”说的意思只是说应对技术面试是可以提前准备。 我其实特别不喜欢那种临近考试就提前背啊记啊各种题的行为,非常反对!我觉得这种方法特别极端,而且在稍有一点经验的面试官面前是根本没有用的。建议大家还是一步一个脚印踏踏实实地走。1 如何获取大厂面试机...原创 2019-05-12 12:44:45 · 4267 阅读 · 2 评论 -
高级程序员和普通程序员有哪些区别?
高级程序员和普通程序员有哪些区别?一 .命名不规范命名很随意,当时写代码特别High,什么奇奇怪怪的命名都有的:xiaonaigou,xxxx,j1,jl,llst.完全意识不到全名规范的价值和意义。二 .日志不规范日志?那是什么鬼东西,能吃么?曾经有一个从文思海辉出来的小伙伴,三年后端工程师经验,出了问题不知道怎么解决。只好重启。找我来协助,问他,怎么错了?不知道。日志呢?...原创 2019-05-12 12:46:36 · 138 阅读 · 0 评论 -
互联网裁员寒冬之下,Java程序员如何看清方向?
互联网裁员寒冬之下,Java程序员如何看清方向?上午在改BUG,下午就被裁掉了。”继阿里、京东传出缩招的消息之后,国内影响力最大的科技企业之一的华为也传出停止社招,华为方面迅速辟谣,不过另有消息人士指华为的社招虽然没有停止,不过社招方面对中端和低端人才的确实已停止仅剩下对高级人才的招募在继续,互联网一直以来就不是「安分守己」的行业,企业的结构调整、人才升级也是常见的现象,拥有「硬技能...原创 2019-05-19 18:38:23 · 420 阅读 · 0 评论 -
现在程序员的工资是不是被高估了?
现在程序员的工资是不是被高估了?任何一个行业(包括程序员),某些个体的工资被高估是有可能的,但如果说整个行业被高估则是不可能的,因为这违背了基本的经济规律。从根本上讲,任何一个行业,高收入的最终来源只能是高利润,否则就一定是“泡沫”经济。虽然就局部来说(例如某些互联网行业),存在一些泡沫,但就整体来说,IT技术已经深入到生活的各个层面,成为整个社会生产力向前的重要驱动力。因此,IT行业...原创 2019-05-19 18:38:34 · 409 阅读 · 0 评论 -
怎样理解 Java 注解和运用注解编程?
怎样理解 Java 注解和运用注解编程?注解,和反射一样,是Java中最重要却最容易被人遗忘的知识点。哪怕Spring、SpringMVC、SpringBoot等框架中充满了注解,我们还是选择性地忽视它。很多人不明白它是怎么起作用的,甚至有人把它和注释混淆...工作中也只是机械性地在Controller上加@RequestMapping。是的,我们太习以为常了,以至于觉得它应该就是如此。...原创 2019-05-19 18:38:46 · 3487 阅读 · 2 评论 -
零基础应该选择学习 java、php、前端 还是 python?
零基础应该选择学习 java、php、前端 还是 python?为了增加自己的说服力,必须亮一下自己的经历了。清华大学硕士毕业,在北京写过两年Java,在杭州写过三年Python,深入定制过Python虚拟机,现在从事arm上的javascript虚机机的开发。虽然仍然不是什么牛人,但我觉得我的经验能对大多数新入门的从业人员提供参考。以下是正式回答。这三门当中,首推Java。真的,Pyt...原创 2019-05-19 18:38:56 · 368 阅读 · 0 评论 -
Java学到什么程度才能叫精通?
Java学到什么程度才能叫精通?全文分为:基础知识和进阶知识下文java必会知识附答案!并为大家整理了一个pdf,所有的知识点和答案都在pdf里面。必会知识点及其答案!!!Java基础知识(*)https://blog.csdn.net/qq_16633405/article/details/79211002Spring Boot 启动 流程(*)https://j...原创 2019-05-16 18:56:18 · 2612 阅读 · 1 评论 -
学习 JAVA,有什么书籍推荐?学习的方法和过程是怎样的?
学习 JAVA,有什么书籍推荐?学习的方法和过程是怎样的?本文内容比较长,主要包含下面几部分内容:学习路线以及方法推荐书单推荐教程推荐推荐一个学习中常看的仓库学习/编程好习惯面试必知学习路线以及方法推荐对于学习路线的话,我说一条我比较推荐的,我相信照着这条学习路线来你的学习效率会非常高。下面提到的书籍以及相关学习视频都答主已经整理好,文末有免费获取方式。很多朋友这几天领取了我...原创 2019-05-12 12:22:46 · 524 阅读 · 0 评论 -
分门别类总结Java中的各种锁,让你彻底记住
分门别类总结Java中的各种锁,让你彻底记住概念公平锁/非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁。非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。有可能,会造成优先级反转或者饥饿现象。对于 JavaReentrantLock而言,通过构造函数指定该锁是否是公平锁,默认是非公平锁。非公平锁的优点在于吞吐量比公平锁大。...原创 2019-05-21 18:49:37 · 181 阅读 · 0 评论 -
终于有人把Java内存模型说清楚了
终于有人把Java内存模型说清楚了内部原理JVM 中试图定义一种 JMM 来屏蔽各种硬件和操作系统的内存访问差异,以实现让 Java 程序在各种平台下都能达到一致的内存访问效果。JMM 的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量与 Java 编程中的变量有所区别,它包括了实例字段、静态字段和构成数组对象的元素...原创 2019-05-21 18:48:08 · 200 阅读 · 0 评论 -
老生常谈Java虚拟机垃圾回收机制(必看篇)
老生常谈Java虚拟机垃圾回收机制(必看篇)二、垃圾收集垃圾收集主要是针对堆和方法区进行。程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收。判断一个对象是否可被回收1. 引用计数算法给对象添加一个引用计数器,当对象增加一个引用时计数器加 1,引用失效时计数器减 1。引用计数为 0 的...原创 2019-05-21 18:34:56 · 139 阅读 · 0 评论 -
JVM运行时数据区域
JVM运行时数据区域一、运行时数据区域程序计数器记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法则为空)。Java 虚拟机栈每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。 从方法调用直至执行完成的过程,就对应着一个栈帧在 Java 虚拟机栈中入栈和出栈的过程。 对于执行引擎来说,活动线程中,只有栈顶的...原创 2019-05-21 18:36:39 · 93 阅读 · 0 评论 -
大型网站背后的高性能系统架构设计
大型网站背后的高性能系统架构设计1. 性能测试1.1. 性能指标网站性能测试的主要指标有:响应时间- 响应时间(RT)是指从客户端发一个请求开始计时,到客户端接收到从服务器端返回的响应结果结束所经历的时间,响应时间由请求发送时间、网络传输时间和服务器处理时间三部分组成。 并发数- 系统同时处理的请求、事务数。 吞吐量- TPS(每秒事务数)、HPS(每秒 HTTP ...原创 2019-05-21 18:38:51 · 423 阅读 · 0 评论 -
分布式架构原理解析,Java开发必修课
分布式架构原理解析,Java开发必修课1. 分布式术语1.1. 异常服务器宕机内存错误、服务器停电等都会导致服务器宕机,此时节点无法正常工作,称为不可用。服务器宕机会导致节点失去所有内存信息,因此需要将内存信息保存到持久化介质上。网络异常有一种特殊的网络异常称为——网络分区,即集群的所有节点被划分为多个区域,每个区域内部可以通信,但是区域之间无法通信。磁盘故...原创 2019-05-21 18:40:35 · 565 阅读 · 0 评论 -
阿里面试题,深入理解Java类加载机制
阿里面试题,深入理解Java类加载机制类的生命周期包括以下 7 个阶段:加载(Loading) 验证(Verification) 准备(Preparation) 解析(Resolution) 初始化(Initialization) 使用(Using) 卸载(Unloading)其中解析过程在某些情况下可以在初始化阶段之后再开始,这是为了支持 Java 的动态绑定。...原创 2019-05-21 18:41:58 · 9553 阅读 · 1 评论 -
深入理解JVM垃圾收集机制,下次面试你准备好了吗
深入理解JVM垃圾收集机制,下次面试你准备好了吗程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收。垃圾回收主要是针对 Java 堆和方法区进行。判断一个对象是否可回收1. 引用计数算法给对象添加一个引用计数器,当对象增加一个引用时计数器加 1,引用失效时计数器减 1。引用计数为 0 的...原创 2019-05-21 18:43:23 · 143 阅读 · 0 评论 -
Java线程小刀牛试
Java线程小刀牛试线程简介什么是线程现代操作系统调度的最小单元是线程,也叫轻量级进程(Light Weight Process),在一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量。线程生命周期java.lang.Thread.State中定义了6种不同的线程状态,在给定的一个时刻,线程...原创 2019-05-21 18:46:42 · 207 阅读 · 0 评论 -
你遇到过哪些质量很高的 Java 面试?
你遇到过哪些质量很高的 Java 面试?--我觉得自己可以在头部再加上一句,一年时间,从java零基础到某一线互联网公司java资深工程师,回头一定和大家好好分享下学习路线。因为本回答阅读量较大,作者觉得很有必要在开始加上一段话:下面写的内容(原回答)只是java非常基础的部分,java只是一个工具,作为工程师,要对整个计算机体系有相当程度掌握;其次要立足于工程需求,思考解决方案,即使面试...原创 2019-05-16 18:58:21 · 300 阅读 · 0 评论 -
如何快速打好Java基础?
如何快速打好Java基础?从大学到现在,我使用Java已经将近20年,日常也带实习生,还在公司内部做training,所以可以分享下我的经验,希望对你有用。因为是在工作中培训,就必然有两个约束:实用、时间紧,因此就不能像大学那样,把所有的知识点都面面俱到的讲到。而只能挑基础的,实用的,难理解的讲。至于其他边边角角的知识,就一笔带过。一则没有时间,二则不常用,再则既使讲了,学生印象也不...原创 2019-05-16 19:00:05 · 685 阅读 · 0 评论 -
【Java基础篇】从最基础的知识带你学习Java
【Java基础篇】从最基础的知识带你学习Java1:计算机计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。可分为超级计算机、工业控制计算机、网络计算机、个人计算机、嵌入式计算...原创 2019-05-22 19:02:01 · 294 阅读 · 0 评论 -
2019年Java程序员的学习路线
2019年Java程序员的学习路线一、基础篇面向对象什么是面向对象面向对象、面向过程面向对象的三大基本特征和五大基本原则平台无关性Java如何实现的平台无关JVM还支持哪些语言(Kotlin、Groovy、JRuby、Jython、Scala)值传递值传递、引用传递为什么说Java中只有值传递封装、继承、多态什么是多态、方法重写与重载Java...原创 2019-05-19 18:39:06 · 10915 阅读 · 1 评论 -
Java 8中字符串拼接新姿势:StringJoiner
Java 8中字符串拼接新姿势:StringJoiner在为什么阿里巴巴不建议在for循环中使用”+”进行字符串拼接一文中,我们介绍了几种Java中字符串拼接的方式,以及优缺点。其中还有一个重要的拼接方式我没有介绍,那就是Java 8中提供的StringJoiner ,本文就来介绍一下这个字符串拼接的新兵。如果你想知道一共有多少种方法可以进行字符串拼接,教你一个简单的办法,在Intell...原创 2019-05-17 19:13:15 · 742 阅读 · 0 评论 -
Java 8中处理集合的优雅姿势——Stream
Java 8中处理集合的优雅姿势——Stream在Java中,集合和数组是我们经常会用到的数据结构,需要经常对他们做增、删、改、查、聚合、统计、过滤等操作。相比之下,关系型数据库中也同样有这些操作,但是在Java 8之前,集合和数组的处理并不是很便捷。不过,这一问题在Java 8中得到了改善,Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。本文就...原创 2019-05-17 19:14:48 · 182 阅读 · 0 评论 -
Java 工程师成神之路 | 2019正式版
Java 工程师成神之路 | 2019正式版基础篇01 面向对象→ 什么是面向对象面向对象、面向过程面向对象的三大基本特征和五大基本原则→ 平台无关性Java 如何实现的平台无关JVM 还支持哪些语言(Kotlin、Groovy、JRuby、Jython、Scala)→ 值传递值传递、引用传递为什么说 Java 中只有值传递→ 封装、继承、多态什么是多态、方法重写与重载...原创 2019-05-17 19:16:28 · 181 阅读 · 0 评论 -
再有人问你Java内存模型是什么,就把这篇文章发给他。
再有人问你Java内存模型是什么,就把这篇文章发给他。前几天,发了一篇文章,介绍了一下JVM内存结构、Java内存模型以及Java对象模型之间的区别。有很多小伙伴反馈希望可以深入的讲解下每个知识点。Java内存模型,是这三个知识点当中最晦涩难懂的一个,而且涉及到很多背景知识和相关知识。网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》和《Java并发编程的艺术》等书中...原创 2019-05-19 18:39:15 · 113 阅读 · 0 评论 -
如何自学java开发?
如何自学java开发?对于这个话题,已经不止N次在线上或线下听到了。从这个话题被太多的人提问及回答,我们可以肯定地说,Java这个已经有近15年头的计算机编程语言是有着及其广阔的应用领域和独特而短期无法替代的优势。我们姑且不讨论这些,针对如何“自学Java语言”在此衷肯谈一下个人建议,希望对有此疑惑的伙伴们有些帮助。首先,从技术角度作为计算机编程语言个人认为自学还是比较难的,通常需要学习者...原创 2019-05-23 18:21:53 · 597 阅读 · 0 评论 -
分享12个能提高JAVA程序员工作效率的工具
分享12个能提高JAVA程序员工作效率的工具java虚拟机在运行java程序的过程中会把它管理的内存划分为若干个不同的数据区域。这些区域都有自己的用途,以及创建和销毁的时间,有的区域随着虚拟机的启动而存在,有的区域则随着用户线程的启动和结束而创建和销毁,虚拟机所管理的数据区域分为如下图几个数据区域;图上的区域跟所占内存占大小是不成比率的,下面来介绍这些数据区域;1程序计...原创 2019-05-22 19:00:46 · 340 阅读 · 0 评论 -
Java 必须掌握的 20+ 种 Spring 常用注解
Java 必须掌握的 20+ 种 Spring 常用注解本文主要罗列Spring|SpringMVC相关注解的简介。Spring部分1.声明bean的注解@Component 组件,没有明确的角色 @Service 在业务逻辑层使用(service层) @Repository 在数据访问层使用(dao层) @Controller 在展现层使用,控制器的声明(C)2.注入be...转载 2019-05-22 18:58:23 · 132 阅读 · 0 评论 -
常见的 Java 错误及避免方法
常见的 Java 错误及避免方法在开发Java软件时可能会遇到许多类型的错误,但大多数是可以避免的。为此我们罗列了最常见的Java编码错误,其中包含代码示例和教程,以帮助大家解决常见的编码问题。编译器错误当Java软件代码通过编译器运行时,会创建编译器错误消息。谨记编译器可能会针对一个错误抛出许多错误消息。所以得修复第一个错误并重新编译。这样做可以解决很多问题。1.“…Expect...原创 2019-05-22 18:55:57 · 1294 阅读 · 0 评论 -
自学 Java 怎么入门?
自学 Java 怎么入门?在大学自学 Java。看视频教程和代码能看懂 自己写就写不出来,怎么样能够入门?给你推荐一个写得非常用心的Java基础教程:Java入门基础教程 | 天码营这个教程将Java的入门基础知识贯穿在一个实例中,逐步深入,可以帮助你快速进入Java编程的世界。万事开头难,逐步跟着这个教程走一遍,对Java应该就会有一种入门的感觉了。然后再去学习更高级的主题,或者更深...原创 2019-05-16 19:01:42 · 250 阅读 · 0 评论 -
哪本书适合推荐给 Java 初学者?
哪本书适合推荐给 Java 初学者?我在2001年之前是C/C++阵营, 有C和面向对象的基础, 后来转到Java ,发现没有指针的Java真是好简单, 另外Java 的类库好用的让人哭啊。后来我就看《Thinking in Java》 ,《Java 核心技术》, 感觉也不吃力。如果我之前没学过别的语言,或者半路出家转到计算机行业, 我不会先看上面那两本, 相反我会选《He...原创 2019-05-16 19:03:51 · 706 阅读 · 1 评论 -
Java工程师笔试题整理[校招篇]
Java工程师笔试题整理[校招篇]阿里巴巴2016阿里巴巴2016研发工程师笔试题(四)阿里巴巴2016研发工程师笔试题(三)阿里巴巴2016研发工程师笔试题(二)2015阿里巴巴2015实习生笔试题阿里巴巴2015系统工程师研发笔试题阿里巴巴2015基础平台研发工程师实习生笔试题阿里巴巴2015研发工程师A笔试卷阿里巴巴2015研发工程师B笔试卷腾讯2017腾讯...原创 2019-05-16 19:05:56 · 2481 阅读 · 0 评论 -
浅谈Java线程
浅谈Java线程线程是程序开发中非常重要的一个技能点,无论你使用哪种语言都是绕不开的,作为一名程序猿,线程是你必须要掌握的,但是线程的概念不太好理解,尤其对于初学者来讲更是如此,今天我试图用更加通俗易懂的方式来为你讲解线程,一起来看看。要搞清楚线程的概念,必须先搞清楚进程,什么是进程?百度百科的解释是:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统...原创 2019-05-22 18:47:11 · 225 阅读 · 0 评论 -
Java调用存储过程,你应该好好了解一下
Java调用存储过程,你应该好好了解一下学习是一种态度,记得要时刻保持学习哟!存储过程是指保存在数据库并在数据库端执行的程序。你可以使用特殊的语法在Java类中调用存储过程。在调用时,存储过程的名称及指定的参数通过JDBC连接发送给DBMS,执行存储过程并通过连接(如果有)返回结果。使用存储过程拥有和使用基于EJB或CORBA这样的应用服务器一样的好处。区别是存储过程可以从...原创 2019-05-22 18:48:36 · 302 阅读 · 0 评论 -
有效处理 Java 异常三原则
有效处理 Java 异常三原则java中异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮、易于调试。异常之所以是一种强大的调试手段,在于其回答了以下三个问题:什么出了错? 在哪出的错? 为什么出错?在有效使用异常的情况下,异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出,如果你的异常没有回答以上全...原创 2019-05-22 18:50:53 · 2519 阅读 · 0 评论 -
今天才真正了解Java的异常处理
今天才真正了解Java的异常处理异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。异常发生的原因有很多,通常包含以下几大类:1、用户输入了非法数据。2、要打开的文件不存在。3、网络通信时连接中断,或者JVM内存溢出。Exception 类的层次所有的异常类是从 java.lang.Exception 类继承的子类,Exception 类...原创 2019-05-22 18:52:37 · 124 阅读 · 0 评论 -
超级详细的 Spring 知识汇总!建议收藏
超级详细的 Spring 知识汇总!建议收藏Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性的角度而言,绝大部分Java应用都可以从Spring中受益。Spring优点:低侵入式设计,代码的污染极低;独立于各种...原创 2019-05-22 18:54:05 · 125 阅读 · 0 评论 -
零基础入门学习Java第一节:开发环境搭建
零基础入门学习Java第一节:开发环境搭建一、安装JDKjava的sdk简称JDK ,去其官方网站下载最近的JDK即可。http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html二、配置环境变量JAVA_HOME 配置JDK安装路径PATH 配置JDK...原创 2019-05-23 18:23:20 · 202 阅读 · 0 评论