软件架构师应该知道的97件事

软件架构师应该知道的97件事

客户的需求重于个人简历简化根本复杂性,消除偶发复杂性关键问题可能不是出在技术上以沟通为中心,坚持简明清晰的表达方式和开明的领导风格架构决定性能分析客户需求背后的意义起立发言故障终究会发生我们常常忽略了自己在谈判量化需求一行代码比500行架构说明更有价值不存在放之四海皆准的解决方案提前关注性能问题架构设计要平衡兼顾多方需求草率提交任务是不负责的行为不要在一颗树上吊死业务目标至上先确保解决方案简单可用,再考虑通用性和复用性架构师应该亲力亲为持续集成避免进度调整失误取舍的艺术打造数据壁垒重视不确定性不

星火燎原 阅读:466评论:2021-06-19

java和c/c++编程过程,跨平台原理

java和c/c++编程过程,跨平台原理

C语言和Java两者语言编译过程

c语言的编程过程:blob.png    blob.png

C/C++语言都直接编译成针对特定平台机器码。如果要跨平台,需要使用相应的编译器重新编译

blob.png

阅读:842评论:2020-11-12

String、StringBuffer、StringBuilder有什么区别?

String、StringBuffer、StringBuilder有什么区别?

今天我会聊聊日常使用的字符串,别看它似乎很简单,但其实字符串几乎在所有编程语言里都是个特殊的存在,因为不管是数量还是体积,字符串都是大多数应用中的重要组成。今天我要问你的问题是,理解 Java 的字符串,String、StringBuffer、StringBuilder 有什么区别?典型回答String 是 Java 语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑。它是典型的 Immutable 类,被声明成为 final class,所有属性也都是 final 的。也由于它的不可

星火燎原 阅读:452评论:2020-09-08

强引用、软引用、弱引用、幻象引用有什么区别?

强引用、软引用、弱引用、幻象引用有什么区别?

在 Java 语言中,除了原始数据类型的变量,其他所有都是所谓的引用类型,指向各种不同的对象,理解引用对于掌握 Java 对象生命周期和 JVM 内部相关机制非常有帮助。今天我要问你的问题是,强引用、软引用、弱引用、幻象引用有什么区别?具体使用场景是什么?典型回答不同的引用类型,主要体现的是对象不同的可达性(reachable)状态和对垃圾收集的影响。所谓强引用(“Strong” Reference),就是我们最常见的普通对象引用,只要还有强引用指向一个对象,就能表明对象还“活着”,垃圾收集器不

星火燎原 阅读:413评论:2020-09-06

谈谈final、finally、 finalize有什么不同?

谈谈final、finally、 finalize有什么不同?

Java 语言有很多看起来很相似,但是用途却完全不同的语言要素,这些内容往往容易成为面试官考察你知识掌握程度的切入点。今天,我要问你的是一个经典的 Java 基础题目,谈谈 final、finally、 finalize 有什么不同?典型回答final 可以用来修饰类、方法、变量,分别有不同的意义,final 修饰的 class 代表不可以继承扩展,final 的变量是不可以修改的,而 final 的方法也是不可以重写的(override)。finally 则是 Java 保证重点代码一定要被执

星火燎原 阅读:526评论:2020-09-05

 Exception和Error有什么区别?

Exception和Error有什么区别?

java

世界上存在永远不会出错的程序吗?也许这只会出现在程序员的梦中。随着编程语言和软件的诞生,异常情况就如影随形地纠缠着我们,只有正确处理好意外情况,才能保证程序的可靠性。Java 语言在设计之初就提供了相对完善的异常处理机制,这也是 Java 得以大行其道的原因之一,因为这种机制大大降低了编写和维护可靠程序的门槛。如今,异常处理机制已经成为现代编程语言的标配。今天我要问你的问题是,请对比 Exception 和 Error,另外,运行时异常与一般异常有什么区别?典型回答Exception 和 Err

星火燎原 阅读:253评论:2020-09-03

Java 基本功

Java 基本功

1.Java 入门(基础概念与常识)1.1 Java 语言有哪些特点?简单易学;面向对象(封装,继承,多态);平台无关性( Java 虚拟机实现平台无关性);可靠性;安全性;支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持);支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设计的,因此 Java 语言不仅支持网络编程而且很方便);编译与解释并存;1.2. 关于 JVM JDK 和 JRE

星火燎原 阅读:204评论:2020-08-31