Java架构
Java奥利给
苦逼程序员码农日常技术、学习资源分享
展开
-
Java程序员如何拿到华为offer——华为初面+综合面试(Java技术面)附上面试题!
华为面试整体流程大致分为笔试,性格测试,面试,综合面试,回学校等结果。笔试来说,华为的难度较中等,选择题难度和网易腾讯差不多。最后的代码题,相比下来就简单很多,一共3道题目,前2题很容易就AC,题目已经记不太清楚,不过难度确实不大。最后一题最后提交的代码过了75%的样例,一直没有发现剩下的25%可能存在什么坑。笔试部分太久远,我就不怎么回忆了。直接将面试。面试如果说腾讯的面试是挥金如土(毕竟每个面试官都配了一件单独的房间),那华为就是戒奢宁俭。两个大会议厅坐满了面试官,其中一个是初面面试区,另一原创 2020-07-31 16:05:36 · 986 阅读 · 0 评论 -
还在为金九银十的面试而发愁?不如来我这里看看Java面试宝典!
前言本文是为了帮大家快速回顾了Java中知识点,这套面试手册涵盖了诸多Java技术栈的面试题和答案,相信可以帮助大家在最短的时间内用作面试复习,能达到事半功倍效果。说明本手册目前为V6.0版本,主要是考虑到面试题的综合性,所以整理的顺序也是这样的,并且也作了相对应的注释,所以说不管是应对面试,还是学习来说,都是不错滴。这套面试手册的组成内容有以下3大主题,5个主要模块,35个小板块:程序员面试题集 JAVA核心面试题库(2020年版) JAVA常见面试题库(2020年..原创 2020-07-10 16:46:05 · 248 阅读 · 0 评论 -
GitHub上260K Stars的P8架构师纯手写的Java高并发编程详解
编写优质的并发代码是一件难度极高的事情。Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更好的选择下面我来给大家介绍一本书本书围绕Java编程中多线程编程的基础与应用设计分为四个部分来展开讲解,包括多线程技术知识、Java ClassLoader、深入理解volatile关键字、多线程设计架构模式。Java 编程语言是工业级的编程语言,在诸多应用、诸多场景下被广泛使用,多线程技术作为Ja..原创 2020-07-09 16:27:12 · 557 阅读 · 0 评论 -
阿里P8架构师:金九银十必备入职大厂最强Java核心知识点
金九银十的求职月份即将到来,我相信有不少小伙伴已经摩拳擦掌的准备寻找下一份工作。就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。那么好 现在,你们的机会来了!!!小编我呢 精心为大家准备了一份资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量..原创 2020-07-08 15:46:07 · 1005 阅读 · 0 评论 -
毕玄:一个优秀的工程师和一个普通工程师的区别
专家语录“一个优秀的工程师和一个普通工程师的区别,不是满天飞的架构图,他的功底体现在所写的每一行代码上。”—毕玄“工程师对于代码,一定要精益求精,不论从性能,还是简洁优雅,都要具备‘精益求精’的工匠精神,认真打磨自己的作品。”—多睡“对程序员来说,关键是骨子里意识到规范也是生产力,个性化尽量表现在代码可维护性和算法效率的提升上。”—孤星好了 鸡汤给大家灌输了 也不知道有没有人干了这碗鸡汤现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其他维度的知识...原创 2020-07-07 16:28:32 · 2325 阅读 · 0 评论 -
GitHub上120K Stars国内第一的Java多线程PDF到底有什么魅力?
随着CPU多核时代的到来,多线程编程在充分利用计算资源、提高软件服务质量方面扮演了越来越重要的角色。而解决多线程编程中频繁出现的普遍问题可以借鉴设计模式所提供的现成解决方案。然而,多线程编程相关的设计模式书籍多采用C++作为描述语言,且书中所举的例子多与应用开发人员的实际工作相去甚远。本书采用Java (JDK1.8) 语言和UML为描述语言,并结合作者多年工作经历的相关实战案例,介绍了多线程环境下常用设计模式的来龙去脉:各个设计模式是什么样的及其典型的实际应用场景、实际应用时需要注意的事项以及各个模式的可原创 2020-07-06 22:28:32 · 576 阅读 · 0 评论 -
Java:如何更优雅的处理空值?
导语在笔者几年的开发经验中,经常看到项目中存在到处空值判断的情况,这些判断,会让人觉得摸不着头绪,它的出现很有可能和当前的业务逻辑并没有关系。但它会让你很头疼。有时候,更可怕的是系统因为这些空值的情况,会抛出空指针异常,导致业务系统发生问题。此篇文章,我总结了几种关于空值的处理手法,希望对读者有帮助。业务中的空值场景存在一个UserSearchService用来提供用户查询的功能:publicinterfaceUserSearchService{List<Use...原创 2020-06-23 18:55:40 · 505 阅读 · 0 评论 -
Java 反射:框架设计的灵魂
在学习 Java 反射之前,先让我们看看这几个概念。01解释型语言和编译型语言解释型语言:不需要编译,在运行的时候逐行翻译解释;修改代码时可以直接修改,可以快速部署,不过性能上会比编译型语言稍差;比如 JavaScript、Python ;编译型语言:需要通过编译器将源代码编译成机器码才能执行;编译之后如果需要修改代码,在执行之前就需要重新编译。比如 C 语言;Java 严格来说也是编译型语言,但又介于编译型和解释型之间;Java 不直接生成机器...原创 2020-06-22 13:44:05 · 195 阅读 · 0 评论 -
JAVA多线程之volatile 与 synchronized 的比较
一,volatile关键字的可见性要想理解volatile关键字,得先了解下JAVA的内存模型,Java内存模型的抽象示意图如下:从图中可以看出:①每个线程都有一个自己的本地内存空间--线程栈空间???线程执行时,先把变量从主内存读取到线程自己的本地内存空间,然后再对该变量进行操作②对该变量操作完后,在某个时间再把变量刷新回主内存因此,就存在内存可见性问题,看一个示例程序:(摘自书上)publicclassRunThreadextendsThread{pr...原创 2020-06-20 18:00:23 · 165 阅读 · 0 评论 -
涨姿势,Java中New一个对象是个怎么样的过程?
在语言层面创建对象(例如克隆、反序列化)通常仅仅是一个new关键字而已,而在虚拟机中,对象(普通Java对象,不包括数组和Class对象等)的创建时一个怎么样的过程?一、对象的创建当虚拟机遇到一条new指令时候,首先去检查这个指令的参数是否能在常量池中能否定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。在类加载检查通过后,接下来虚拟机将为新生的对象分配内存。对象所需的内存的大小在类加载完成后便可以完全确定,为对象分配空间的原创 2020-06-19 18:28:42 · 202 阅读 · 0 评论 -
如何编写可怕的 Java 代码?
我决定告诉你如何编写可怕的Java代码。如果你厌倦了所有这些美丽的设计模式和最佳实践,并且想写些疯狂的东西,请继续阅读。如果你正在寻找有关如何编写良好代码的建议,请点击查看这篇文章。对一切使用异常你知道循环对吗?差一错误(英语:Off-by-one error,缩写 OBOE,是在计数时由于边界条件判断失误导致结果多了一或少了一的错误,通常指计算机编程中循环多了一次或者少了一次的程序错误,属于逻辑错误的一种)很容易犯。当你迭代一个集合时,很容易出错。让我们看看如...原创 2020-06-17 21:12:38 · 318 阅读 · 0 评论 -
JavaFX教程
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。JavaFX允许开发人员快速构建丰富的跨平台应用程序。JavaFX通过硬件加速图形支持现代GPU。JavaFX允许开发人员在单个编程接口中组合图形,动画和UI控件。图表编程语言可用于开发互联网应用程序(RIA)。JavaFX技术主要应用于创建Rich Internet applications(RIAs)。当前的JavaFX包括JavaFX脚本和JavaFX Mobi原创 2020-06-17 18:03:17 · 935 阅读 · 0 评论 -
Java:就是要让你学会内部类
看了很多源码,都有用到内部类,但是自己以前在生产环境上,用的确实少,也有用过但是很少,所以今天就打算好好的把它从头到尾的过一遍。定义可以将一个类的定义放在里另一个类的内部,这就是内部类,所谓的内部类的概念只是出现在编译阶段,对于jvm层是没有内部类这个概念的。我们可以利用内部类来解决 类的单继承问题,外部类不能再继承的类可以交给内部类继承 我们可以通过定义内部类来实现一个类私属于一个类,实现更好的封装性 代码优化:它需要更少的代码 分类内部类可以分为: 静态内原创 2020-06-16 19:32:59 · 202 阅读 · 0 评论 -
Java 类中可以覆盖静态方法吗?
Java 类中可以覆盖静态方法吗?不,你不能在Java中覆盖静态方法,但在子类中声明一个完全相同的方法不是编译时错误,这称为隐藏在Java中的方法。你不能覆盖Java中的静态方法,因为方法覆盖基于运行时的动态绑定,静态方法在编译时使用静态绑定进行绑定。虽然可以在子类中声明一个具有相同名称和方法签名的方法,看起来可以在Java中覆盖静态方法,但实际上这是方法隐藏。Java不会在运行时解析方法调用,并且根据用于调用静态方法的 Object 类型,将调用相应的方法。这意味着如果你使用父类.原创 2020-06-16 19:00:25 · 375 阅读 · 0 评论 -
Java语言特性和技术特点探究
Java语言特性和技术特点探究1 引子Java一直以来是排名前二的编程语言, 这篇文章我们来学习和探讨一下Java的语言特性和技术特点。2 通用的JavaJava是一种通用的编程语言,它是比较经典的面向对象编程语言,面向对象编程的一个重要特性就是更容易实现高内聚低耦合的代码。 Java的主要特点是让应用程序开发人员编写一次即可在任何地方运行(WORA。这意味着已编译的Java代码可以在支持Java的所有平台上运行,而无需重新编译。 Java应用程序通常被编译为可...原创 2020-06-16 18:52:54 · 847 阅读 · 0 评论 -
Java中堆和栈的区别
堆和栈都是Java用来在RAM中存放数据的地方。 堆1. Java的堆是一个运行时数据区,类的对象从堆中分配空间。这些对象通过new等指令建立,通过垃圾回收器来销毁。2. 堆的优势是可以动态地分配内存空间,需要多少内存空间不必事先告诉编译器,因为它是在运行时动态分配的。但缺点是,由于需要在运行时动态分配内存,所以存取速度较慢。栈1. 栈中主要存放一些基本数据类型的变量(byte,short,in...原创 2020-06-16 16:52:38 · 699 阅读 · 0 评论