- 博客(36)
- 收藏
- 关注
原创 Java面试题——JVM常见面试题目录
题目1:JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots题目2:你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认值题目3:工作中用过的JVM常用基本配置参数有哪些?...
2020-01-29 13:59:34 356
原创 JAVA面试题——JUC多线程及并发常见问题目录
1、谈谈你对volitile的理解2、CAS你知道吗?3、原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗?4、ArrayList的线程不安全问题。5、各种锁。6、CountDownLatch/CyclicBarrier/Semaphore使用过吗?7、阻塞队列知道吗?8、线程池用过吗?ThreadPoolExecutor谈谈你的理解?9、线程池用过吗?生产上你...
2020-01-28 14:33:03 2179
原创 服务器上Nacos集群搭建
数据类型一:String常用命令:~单值缓存:SET key valueGET key~对象缓存:1)SET user:1 value(json格式数据)2)MSET user:1:name lc user:1:balance 18888MGET user:1:name user:1:balance~分布式锁:线程1:SETNX producet:1001 true //返回1...
2020-09-27 15:27:06 1226 1
原创 Zookeeper入门学习
一、安装配置单机模式(1)下载zoopeeker的压缩包并上传到linux服务器,解压。(2)进入conf目录,将zookeeper.cfg改为zoo.cfg。(3)进入bin目录,sh zkServer.sh start打开服务器。(4)通过sh zkServer.sh status查看,Mode:standalone说明单机模式启动。通过jps -vm可以看到zookeeper包启动...
2020-03-12 13:41:01 354
原创 操作系统面试题详解
1、进程和线程以及它们的区别。进程:进程是据有独立功能的程序在某个数据集合上的一次运行活动,也是操作系统进行资源分配和保护的基本单位。注:以上是进程的定义,可以理解为进程是指一段正在执行的程序。线程:有时被称为轻量进程(Lightweight Process,LWP),是程序执行流的最小单元。是被系统独立调度和分派的基本单位。注:线程是指程序在执行过程中,能够执行程序代码的一个执行单元。进...
2020-03-02 14:25:49 312
原创 GIT体系学习
文章目录GIT体系概述GIT核心命令使用git 客户端安装配置认识GIT的基本使用git 底层原理1、GIT存储对像(hashMap)2、GIT树对像3、git提交对象4、GIT引用GIT体系概述目前,公司流行的管理代码版本的工具有SVN和GIT。这两者有什么区别呢?(1)存储方式GIT把内容按元数据方式存储类似k/v数据库,而SVN是按文件(新版svn已改成元数据存储)(2)使用方式...
2020-02-12 15:20:31 343
原创 Java面试题——框架SpringCloud
什么是微服务?微服务强调的是服务的大小,关注的是某一个点,是具体解决某一个问题/提供落地对应服务的一个服务应用。微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协调、相互配合,为用户提供最终的价值。服务之间采用轻量级的通信机制相互沟通(HTTP的RESTful API)。(和Dubbo最大的区别)每个服务...
2020-02-11 22:35:17 301
原创 Java面试题——多线程问题及答案
一、多线程的几种实现方式,什么是线程安全。四种:继承Thread类,实现Runnable接口,实现Callable接口,使用线程池。线程安全:当多个线程访问某个类时,这个类始终都能表现出正确的行为,那么就称这个类是线程安全的。(Java并发编程实战)最核心的概念是正确性。正确性:某个类的行为与其规范完全一致。二、volatile的原理,作用,能代替锁么。volatile的理解三、画一个...
2020-02-11 22:31:11 2414
原创 Java——设计模式
文章目录单例模式(Singleton Pattern)饿汉式(静态变量):饿汉式(静态代码块):懒汉式(线程不安全):懒汉式(线程安全):懒汉式(线程安全,同步代码块):双重检查:静态内部类:枚举:单例模式(Singleton Pattern)定义:确保一个类只有一个实例,并提供一个全局访问点。八种方式:饿汉式(静态变量、静态代码块)懒汉式(线程不安全、线程安全,同步方法、线程安全、同步...
2020-02-09 16:49:47 133
原创 Java算法——排序算法
文章目录排序的分类冒泡排序(Bubble Sorting)选择排序(Select Sorting)插入排序(Insert Sorting)排序的分类内部排序将需要处理的所有数据都加载到内部存储器中进行排序。外部排序数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。内部排序分类:插入排序(直接插入排序、希尔排序)选择排序(简单选择排序、堆排序)交换排序(冒泡排序、...
2020-01-31 13:03:09 426
原创 Java递归算法——八皇后问题(回溯算法)
问题:任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法?算法思路分析1) 第一个皇后先放第一行第一列2) 第二个皇后放在第二行第一列、然后判断是否OK,如果不行,继续放在第二列、第三列,一次把所有列都放完,找到一个合适3)继续第三个皇后,还是第一列、第二列…直到第八个皇后也能放在一个正确的位置上,得出一个正确解4)当得到一个正确解时,在栈回退到上一个栈时,就会开始回溯,将...
2020-01-31 09:46:53 412
原创 Github的一些常用语句
常用词(1)watch:会持续收到该项目的动态(2)fork:复制某个项目到自己的Github仓库中(3)star:点赞(4)clone:将项目下载至本地(5)follow:关注作者in关键词限制搜索范围xxx关键词in:name或description或readme组合使用:关键词 in:name,description,readme查到的更精确,效率更高。star和fork...
2020-01-30 14:58:09 438
原创 Java面试题——JVM(10)
题目:假如生产环境程序CPU占有过高,请谈谈你的分析思路和定位。结合linux核jdk命令一块分析案例步骤如下1、先用top命令找出cpu占用最高的2、ps -ef或者jps进一步定位,得知是一个怎么样的一个后台程序3、定位到具体线程或者代码ps -mp 进程编号 -o THREAD,tid,time参数解释:-m 显示所有的线程-p pid 进程使用cpu的时间-o 该...
2020-01-30 10:46:03 177
原创 Java面试题——JVM(9)
题目:生产环境服务器变慢,诊断思路和性能评估谈谈?Linux命令主机:(1)top命令查看主要占用cpu的进程,还有右上角的load average,分别是1分钟,5分钟和15分钟的负载值,加起来除以3,大于60%则是负载过重。(2)uptime命令精简版的topCPU(1)vmstat命令(2)mpstat命令mpstat -P ALL 2,每两秒采样一次。查看所有cp...
2020-01-30 10:27:55 225
原创 Java面试题——JVM(8)
G1垃圾收集器(garbage-first)以前收集器的特点1、年轻代和老年代是各自独立且连续的内存块2、年轻代收集器使用 eden + S0 + S1 进行复制算法3、年代收集必须扫描整个老年代区域4、都是以尽可能的少而快速地执行 GC 为设计原则G1 是什么1、G1 是一种面向服务端的垃圾收集器,应用在多核处理器和大容量内存环境中,在实现高吞吐量的同时,尽可能的满足垃圾收集器的暂...
2020-01-29 22:16:44 278
原创 Java面试题——JVM(7)
题目7:怎么查看服务器默认的垃圾收集器是哪个?生产上如何配置垃圾收集器的?谈谈你对垃圾收集器的理解。怎么查看服务器默认的垃圾收集器?JVM参数: java -XX:+PrintCommandLineFlags -version服务器默认的垃圾收集器是哪个?UseSerialGC,UseParallelGC,UseConcMarkSweepGC,UseParNewGC,UseParalle...
2020-01-29 20:30:38 219
原创 Java面试题——JVM(6)
题目6:GC垃圾回收算法和垃圾收集器的关系?分别是什么GC垃圾回收算法1、引用计数2、复制3、标记-清除算法4、标记-整理算法GC算法是内存回收的方法论,垃圾收集器是算法落地实现。目前没有完美的收集器出现,只能针对具体应用最合适的收集器,即分代收集。GC垃圾收集器串行垃圾收集器Serial串行垃圾收集器:为单线程环境设计且只使用一个线程进行垃圾回收,会暂停所有的用户线程,所以不...
2020-01-29 19:00:40 191
原创 Java面试题——JVM(5)
题目:请你谈谈OOM的认识java.lang.StackOverflowError爆栈:递归调用自身。public class StackOverflowErrorDemo { public static void main(String[] args) { stackOverflowError(); } private static void sta...
2020-01-29 16:30:53 205
原创 Java面试题——JVM(4)
题目:强引用、软引用、弱引用、虚引用分别是什么?文章目录题目:强引用、软引用、弱引用、虚引用分别是什么?整体架构强引用软引用弱引用你知道弱引用的话,能谈谈WeakHashMap吗?虚引用整体架构强引用当内存不足,JVM开始垃圾回收,对于强引用的对象,就算是出现了OOM也不会对该对象进行回收,死都不收。强引用是我们最常见的普通对象引用,只要还有强引用指向一个对象,就能表明对象还“活着”,...
2020-01-29 14:56:06 190
原创 Java面试题——JVM(3)
题目:工作中用过的JVM常用基本配置参数有哪些?文章目录题目:工作中用过的JVM常用基本配置参数有哪些?-Xms、-Xmx-Xss-Xmn-XX:MetaspaceSize典型配置案例XX:+PrintGCDetails下面一些只需要在面试中会说,在实际不太需要设置XX:SurvivorRadioXX:NewRadioXX:MaxTenuringThreshold-Xms、-Xmx-Xms(...
2020-01-29 13:56:26 275
原创 Java内存区域与内存溢出异常、对象的创建
文章目录运行时数据区域程序计数器(Program Counter Register)Java虚拟机栈(Java Virtual Machine Stacks)本地方法栈(Native Method Stack)Java堆(Java Heap)方法区(Method Area)运行时常量池(Runtime Constant Pool)直接内存(Direct Memory)对象的创建、布局与访问对象的创...
2020-01-29 11:12:55 168
原创 Java面试题——JVM(2)
题目:你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认值文章目录题目:你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认值JVM参数类型标配参数X参数(了解)XX参数(重点)Boolean类型KV设置类型请问如何盘点查看JVM系统默认值第一种 查看参数第二种 查看JVM默认值坑题:两个经典参数: -Xms和-Xmx默认初始值JVM参数类型标配参数-version...
2020-01-29 10:51:52 315
原创 Java面试题——JVM(1)
题目:JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots什么是垃圾简单的说就是内存中以及不再被使用到的空间就是垃圾要进行垃圾回收,如何判断一个对象是否可以被回收?引用计数法给对象中添加一个引用计数器,每当有一个地方引用它,计数器值加1,每当有一个引用失效,计数器值减1.任何时刻计数器为0的对象就是不可能再被使用的,那这个对象就是可以回收的对象。为什么主流Java虚拟...
2020-01-29 09:48:56 277
原创 JAVA面试题——CountDownLatch/CyclicBarrier/Semaphore 使用过吗?
CountDownLatch让一些线程堵塞直到另一个线程完成一系列操作后才被唤醒。CountDownLatch 主要有两个方法,当一个或多个线程调用 await 方法时,调用线程会被堵塞,其他线程调用 countDown 方法会将计数减一(调用 countDown 方法的线程不会堵塞),当计数其值变为零时,因调用 await 方法被堵塞的线程会被唤醒,继续执行。类似生活场景:关门:等到商场里面...
2020-01-28 19:13:24 597
原创 JAVA面试题——死锁编码以及定位分析
死锁是什么死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种相互等待的现象,如果无外力的干涉那它们都将无法推进下去,如果系统的资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。死锁产生原因~系统资源不足~进程运行推进的不当~资源分配不当demo:public class DeadLockDemo { publi...
2020-01-28 19:04:15 267
原创 JAVA面试题——生产上如何配置合理参数
谈谈线程池的拒绝策略是什么等待队列已经满了,再也塞不下新的任务,同时线程池中的线程数达到了最大线程数,无法继续为新任务服务。拒绝策略AbortPolicy:处理程序遭到拒绝将抛出运行时 RejectedExecutionExceptionCallerRunsPolicy:线程调用运行该任务的 execute 本身。此策略提供简单的反馈控制机制,能够减缓新任务的提交速度。Discard...
2020-01-28 16:42:48 499
原创 JAVA面试题——对线程池的理解
文章目录为什么用线程池,它的优势是什么?线程池的底层分析底层架构编码实现源码和七个参数(五个参数)底层原理为什么用线程池,它的优势是什么?可以装X的方式,使用线程来看下电脑的核数:public class MyThreadPoolDemo { public static void main(String[] args) { System.out.println(Run...
2020-01-28 15:48:47 1434
原创 线程池的七个参数
ThreadPoolExecutor是线程池的底层核心类,我们可以从源码中看到,ThreadPoolExecutor类有七个参数,在实现的三种重要方式中,前面五个参数public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, ...
2020-01-28 15:40:30 521
原创 生产者与消费者(阻塞队列版)
import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;class MyResource{ ...
2020-01-28 14:11:34 118
原创 JAVA面试题——各种锁
文章目录公平锁非公平锁公平锁和非公平锁区别可重入锁(递归锁)自旋锁公平锁是指多个线程按照申请锁的顺序来获取锁,类似排队打饭,先来后到。非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。在高并发的情况下,有可能造成优先级反转或者饥饿现象。公平锁和非公平锁区别ReentrantLock默认是非公平锁,但是可以设置为true成为公平锁,Sy...
2020-01-28 14:03:57 1543 1
原创 JAVA面试题——ArrayList线程不安全问题
故障现象java.util.ConcurrentModificationException并发修改异常导致原因并发争抢修改导致,一个正在写入,另一个过来抢夺,导致数据不一致异常,并发修改异常。解决方案1、new vector<>();问题:vector虽然保证了线程安全性,但是并发性性能下降。2、Collections.synchronizedList(new Array...
2020-01-28 13:54:53 725
原创 JAVA面试题——volatile的理解
文章目录一、简介(请你谈谈对volatile的理解)二、三大特性什么叫保证了可见性?禁止指令重排序不保证原子性三、哪里有用过volatile?一、简介(请你谈谈对volatile的理解)首先,volatile是Java虚拟机提供的轻量级的同步机制,他基本遵守了JMM的规范。二、三大特性volatile主要有三大特性:保证可见性,有序性(即禁止指令重排序),但是不保证原子性。什么叫保证了可...
2020-01-28 13:23:44 1227
原创 JAVA面试题——CAS原理
比较并交换,CPU并发原语。功能是判断内存某个位置的值是否为预期值,如果是则改为新的值,这个过程是原子的。CAS并发原语体现在JAVA语言中就是sun.misc.Unsafe类中的各个方法。...
2020-01-28 13:23:11 2238 1
原创 JAVA面试题——JMM内存模型
文章目录谈谈JMMJMM同步规定谈谈JMMJMM(java内存模型)Java Memory Model,本身是一个抽象的概念,不是真实存在的,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段、静态字段和构成数组对象的元素)的访问方式。JMM同步规定(1)线程解锁前,必须把共享变量的值刷新回主内存(2)线程加锁前,必须读取主内存的最新值到自己的工作内存(3)加锁解...
2020-01-28 13:19:44 2127
原创 Java面试题——Callable接口
文章目录一、Callable接口是创建多线程的方式之一二、Callable接口与Runnable接口的区别三、FutureTask实现类引申问题:那么既然有了Runnable接口,为什么还要Callable接口,谈一谈它的背景。四、获取futureTask的计算结果一、Callable接口是创建多线程的方式之一创建多线程的四种方式: 一、继承Thread类; 二、实现Runnable接口;...
2020-01-28 11:12:17 492
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人