无题
Java异常架构与异常关键字Java异常简介Java异常是Java提供的一种识别及响应错误的一致性机制。
Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰的回答 what, where, why这3个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪”抛出,异常信息回答了“为什么”会抛出。
Java异常架构
1. ThrowableThrowable 是 Java 语言中所有错误与异常的超类。
Throwable 包含两个子类:Error(错误)和 Exception(异常),它们通常用于指示发生了异常情况。
Throwable 包含了其线程创建时线程执行堆栈的快照,它提供了 printStackTrace() 等接口用于获取堆栈跟踪数据等信息。
2. Error(错误)定义:Error 类及其子类。程序中无法处理的错误,表示运行应用程序中出现了严重的错误。
特点:此类错误一般表示代码运行时 JVM 出现问题。通常有 Virtual
MachineError(虚拟机运行错误)、NoClas ...
无题
集合容器概述什么是集合集合框架:用于存储数据的容器。
集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。 任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算 法。
接口:表示集合的抽象数据类型。接口允许我们操作集合时不必关注具体实现, 从而达到“多态”。在面向对象编程语言中,接口通常用来形成规范。
实现:集合接口的具体实现,是重用性很高的数据结构。算法:在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方 法,例如查找、排序等。这些算法通常是多态的,因为相同的方法可以在同一个 接口被多个类实现时有不同的表现。事实上,算法是可复用的函数。 它减少了程序设计的辛劳。
集合框架通过提供有用的数据结构和算法使你能集中注意力于你的程序的重要部 分上,而不是为了让程序能正常运转而将注意力于底层设计上。
通过这些在无关API之间的简易的互用性,使你免除了为改编对象或转换代码以 便联合这些API而去写大量的代码。 它提高了程序速度和质量。
集合的特点集合的特点主要有如下两点:
对象封装数据,对象多了也需要存储。集合用于存储对象。
对象的个数确定 ...
Java基础知识面试题
Java概述何为编程编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并 终得到结果的过程。
为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路、方法、 和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一 步一步去工作,完成某种特定的任务。这种人和计算机之间交流的过程就是编 程。
什么是JavaJava是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了 C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易 用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对 象理论,允许程序员以优雅的思维方式进行复杂的编程 。
jdk1.5之后的三大版本
Java SE(J2SE,Java 2 Platform Standard Edition,标准版) Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使 用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为Java EE和Java ME提供基础。
Java ...
无题
1. 单例模式:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这 个实例。123456789101112131415161718192021(1)懒汉式 public class Singleton { /* 持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载 */ private static Singleton instance = null; /* 私有构造方法,防止被实例化 */ private Singleton() { } /* 1:懒汉式,静态工程方法,创建实例 */ public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; ...
无题
(1) 红黑树的了解(平衡树,二叉搜索树),使用场景把数据结构上几种树集中的讨论一下:
1. AVLtree定义:先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度 大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和坏情况 下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这 个树。
节点的平衡因子是它的左子树的高度减去它的右子树的高度(有时相反)。带有 平衡因子1、0或 -1的节点被认为是平衡的。带有平衡因子 -2或2的节点被认为 是不平衡的,并需要重新平衡这个树。平衡因子可以直接存储在每个节点中,或 从可能存储在节点中的子树高度计算出来。
一般我们所看见的都是排序平衡二叉树。
AVLtree使用场景:AVL树适合用于插入删除次数比较少,但查找多的情况。插 入删除导致很多的旋转,旋转是非常耗时的。AVL 在linux内核的vm area中使用。
2. 二叉搜索树二叉搜索树也是一种树,适用与一般二叉树的全部操作,但二叉搜索树能够实现 数据的快速查找。
二叉搜索树满足的条件:
非空左子树的所有键值小于其根节点的键值
非空右子树的所 ...
无题
计算机网络体系结构在计算机网络的基本概念中,分层次的体系结构是 基本的。计算机网络体系结
构的抽象概念较多,在学习时要多思考。这些概念对后面的学习很有帮助。
网络协议是什么?在计算机网络要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则, 比如交换数据的格式、是否需要发送一个应答信息。这些规则被称为网络协议。
为什么要对网络协议分层?
简化问题难度和复杂度。由于各层之间独立,我们可以分割大问题为小问题。
灵活性好。当其中一层的技术变化时,只要层间接口关系保持不变,其他层不受 影响。
易于实现和维护。
促进标准化工作。分开后,每层功能可以相对简单地被描述。
网络协议分层的缺点: 功能可能出现在多个层里,产生了额外开销。 为了使不同体系结构的计算机网络都能互联,国际标准化组织 ISO 于1977年提 出了一个试图使各种计算机在世界范围内互联成网的标准框架,即著名的开放系统互联基本参考模型 OSI/RM,简称为OSI。
OSI 的七层协议体系结构的概念清楚,理论也较完整,但它既复杂又不实用, TCP/IP 体系结构则不同,但它现在却得到了非常广泛的应用 ...
无题
一. 模型1. 节点在具体的工程项目中,一个节点往往是一个操作系统上的进程。在本文的模型中,认 为节点是一个完整的、不可分的整体,如果某个程序进程实际上由若干相对独立部分 构成,则在模型中可以将一个进程划分为多个节点。
异常机器宕机:机器宕机是最常见的异常之一。在大型集群中每日宕机发生的概 率为千分之一左右,在实践中,一台宕机的机器恢复的时间通常认为是24 小 时,一般需要人工介入重启机器。
网络异常:消息丢失,两片节点之间彼此完全无法通信,即出现了“网络分 化”;消息乱序,有一定的概率不是按照发送时的顺序依次到达目的节点,考 虑使用序列号等机制处理网络消息的乱序问题,使得无效的、过期的网络消息 不影响系统的正确性;数据错误;不可靠的TCP,TCP 协议为应用层提供了可 靠的、面向连接的传输服务,但在分布式系统的协议设计中不能认为所有网络 通信都基于TCP 协议则通信就是可靠的。TCP协议只能保证同一个TCP 链接内 的网络消息不乱序,TCP 链接之间的网络消息顺序则无法保证。
分布式三态:如果某个节点向另一个节点发起RPC(Remote procedure call) 调用,即某 ...
无题
为什么需要学习Spring Cloud不论是商业应用还是用户应用,在业务初期都很简单,我们通常会把它实现为单体结构的应用。但是,随着业务逐渐发展,产品思想会变得越来越复杂,单体结构的应用也会越来越复杂。这就会给应用带来如下的几个问题:
代码结构混乱:业务复杂,导致代码量很大,管理会越来越困难。同时,这也会给业务的快速迭代带来巨大挑战;
开发效率变低:开发人员同时开发一套代码,很难避免代码冲突。开发过程会伴随着不断解决冲突的过程,这会严重的影响开发效率;
排查解决问题成本高:线上业务发现 bug,修复 bug 的过程可能很简单。但是,由于只有一套代码,需要重新编译、打包、上线,成本很高。
由于单体结构的应用随着系统复杂度的增高,会暴露出各种各样的问题。近些年来,微服务架构逐渐取代了单体架构,且这种趋势将会越来越流行。Spring
Cloud是目前最常用的微服务开发框架,已经在企业级开发中大量的应用。
什么是Spring CloudSpring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、 ...
无题
概述什么是 Spring Boot?Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。
Spring Boot 有哪些优点?Spring Boot 主要有如下优点:
容易上手,提升开发效率,为 Spring 开发提供一个更快、更广泛的入门体验。
开箱即用,远离繁琐的配置。
提供了一系列大型项目通用的非业务性功能,例如:内嵌服务器、安全管理、运行数据监控、运行状况检查和外部化配置等。
没有代码生成,也不需要XML配置。
避免大量的 Maven 导入和各种版本冲突。
Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:
@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
@EnableAutoConfiguration ...
无题
1. Netty 是什么?Netty是 一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能 协议服务器和客户端。Netty是基于nio的,它封装了jdk的nio,让我们使用起 来更加方法灵活。
2. Netty 特点是什么?
高并发:Netty 是一款基于 NIO(Nonblocking IO,非阻塞IO)开发的网络通 信框架,对比于 BIO(Blocking I/O,阻塞IO),他的并发性能得到了很大提高。
传输快:Netty 的传输依赖于零拷贝特性,尽量减少不必要的内存拷贝,实现了 更高效率的传输。
封装好:Netty 封装了 NIO 操作的很多细节,提供了易于使用调用接口。
3. Netty 的优势有哪些?
使用简单:封装了 NIO 的很多细节,使用更简单。
功能强大:预置了多种编解码功能,支持多种主流协议。
定制能力强:可以通过 ChannelHandler 对通信框架进行灵活地扩展。
性能高:通过与其他业界主流的 NIO 框架对比,Netty 的综合性能优。
稳定:Netty 修复了已经发现的所有 NIO 的 bug,让开发人员可以专注于 ...








