JAVA基础

JAVA基础
java中有几种基本类型?
Java的基本类型有8种:四种基本类型(byte,short, int, long)。两种浮点类型(float,double)。一种字符类型(char),一种布尔类型(boolean)

String能被继承吗?
不可以,因为String类有final修饰符,而final修饰的类是不能被继承的。

String,StringBuffer, StringBuilder的区别
两种维度来说:第一个维度:可变与不可变。String字符串因为被final修饰,所以他是不可变对象。StringBuffer,StringBuilder都继承AbstractStringBuilder,这两种对象都是可变的。第二个维度:是否线程安全。String的对象是不可变的,可以理解为常量,显然是线程安全的。StringBuffer字符串常量也是线程安全的,他也是final类别的,synchronized修饰。

StringBuilder 线程不安全,并没有对方法进行加同步锁。

ArrayList和LinkedList的区别
首先,ArrayList和LinkedList都实现了list接口,它们有以下不同点: ArrayList是基于索引的数据接口,它的底层是数组,而LinkedList是以元素列表的形式存储数据的,linkedList的插入、添加、删除操作速度更快。LinkedList比ArrayList更占内存。

HashMap和HashTable区别
hashMap不是线程安全的,它允许null key和null value ,而HashTable不允许,所以它是线程安全的,从执行效率上来看,因为hashMap允许null key,null value,要高于HashTable。

BIO和NIO的区别
BIO(IO)是面向流的,NIO是面向缓冲区的。

BIO: 同步阻塞式IO,就是我们平时使用的传统IO, 它的特点是模式简单,使用方便,并发处理能力低。

NIO: 同步非阻塞Io, 是传统IO的升级,客户端和服务器端通过channel(通道)通讯,实现了多路复用。

java中的IO流分为几种?
按功能来分:分为输入流(input)输出流(outPut)

按类型来分:字节流和字符流

字节流和字符流的区别:字节流按8位传输字节为单元输入输出数据,字符流按16位传输以字符为单位输入输出数据。

多线程应用
JVM知识
什么情况下会发生栈内存溢出
如果线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverflowError异常。如果虚拟机在动态扩展栈时,无法申请到足够的内存空间。则抛出OutOfMemoryError异常。

JVM原理
Jvm是java的核心和基础,在java编译器和OS平台之间的虚拟处理器,他可以在上面执行java的字节码程序,java编译器只要面向JVM,生成JVM能理解的代码或字节码文件。Java源码文件经编译后成字节码程序,通过JVM将每一条指令翻译成不同平台的机器码,通过特定平台运行。

JVM体系结构
类加载器:加载class文件;执行引擎:执行字节码或者本地方法。运行时数据区:包括方法区,堆,java栈,pc寄存器,本地方法栈。

垃圾收集算法
标记清除算法,复制算法,标记整理算法。

JVM调优
调优手段主要是通过控制堆内存的各个部分的比例和GC策略来实现。

-Xms: 初始堆大小

-Xmx: 最大堆大小

-XX:NewSize=n:设置年轻代大小

数据库调优
Mysql定位慢sql
Show variables like ‘%query%’

在要执行的sql前加上explain

微服务架构
Spring Cloud全家桶组件
Spring cloud Netflix Eureka: 服务注册与发现:我们将自己定义的API接口注册到spring cloud Eureka上,Eureka负责服务的注册与发现。

Spring cloud Netflix Ribbon: 客户端负载均衡(简单轮询负载均衡,加权响应时间负载均衡,随机负载均衡)

Spring cloud Netflix Hystrix: 断路器

Spring cloud Netflix Zuul: 服务网关

Spring cloud Config: 分布式配置

Redis
缓存雪崩
设置失效时间时,再加上一个随机的时间数,避免在同一个时间点去查询数据库

缓存穿透
布隆过滤器可解决

Kafka
高并发
什么是高并发

高并发是互联网分布式架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。

高并发相关常用一些指标有:响应时间,吞吐量,每秒查询率QPS,并发用户数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值