
问答分享
文章平均质量分 81
Java架构没有996
祝您早日学有所成,拿到满意offer。快速升职加薪,出任CEO,赢取白富美,走上人生巅峰。
展开
-
最近有粉丝向我请教Java泛型,于是重温了一下,希望学弟面试顺利
什么是泛型?泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。可以在集合框架(Collection framework)中看到泛型的动机。例如,Map 类允许您向一个 Map 添加任意类的对象,即使最常见的情况是在给定映射(map)中保存某个特定类型(比如 String)的对象。因为 Map.get() 被定义为原创 2021-10-11 22:13:55 · 591 阅读 · 0 评论 -
你连简单的枚举类都不知道,还敢说自己会Java???滚出我的公司
枚举类型是Java 5中新增的特性,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。当需要定义一组常量时,强烈建议使用枚举类。使用枚举类的条件:类的对象是有限个,确定的。例如星期类,它的对象只有星期一…星期日七个,而且是确定的,此时就可以把星期类定义为一个枚举类;又例如性别类,它的对象只有男和女两个,而且是确定的,此时同样可以把性别类定义为一个枚举类;还有诸如季节等这种类的对象是有限个,确定的原创 2021-10-08 15:47:02 · 618 阅读 · 0 评论 -
华为二面!!!面试官直接问我Java中到底什么是NIO?这不是直接送分题???
华为二面!!!面试官直接问我Java中到底什么是NIO?这不是直接送分题???什么是NIO缓冲区(Buffer)缓冲区类型获取缓冲区核心属性核心方法非直接缓冲区和直接缓冲区非直接缓冲区直接缓冲区通道(Channel)Java Channel获得通道的方法对象调用getChannel() 方法getChannel()+非直接缓冲区open()+直接缓冲区通道间直接传输直接缓冲区VS非直接缓冲区分散和聚集非阻塞式网络通信概念阻塞式网络通信非阻塞式网络通信选择器什么是NIOJava NIO(New IO)是原创 2021-10-08 15:43:00 · 7257 阅读 · 13 评论 -
纳尼???我JVM优化过头了,直接把异常信息优化没了?怎么办
你好呀,我是why。你猜这次我又要写个啥没有卵用的知识点呢?不好意思,问的稍微有点早了,啥提示都没给,咋猜呢,对吧?先给你上个代码:public class ExceptionTest { public static void main(String[] args) { String msg = null; for (int i = 0; i < 500000; i++) { try { msg原创 2021-10-08 15:33:21 · 408 阅读 · 5 评论 -
华为二面!!!被问常用API,这也太偏门了吧,我秀了一波hhhh~
华为二面!!!被问常用API,这也太偏门了吧,我秀了一波hhhh~常用API一、API概述二、Scanner类代码三、Random类代码四、* ArrayList类**存储基本数据类型**代码五、匿名对象昨天我去了华为面试,问我常用API,我以为我被搞到了,可惜我也是对API很有见解的常用API一、API概述 API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的 字典 ,是JDK中提供给 我们使用的类的说明文档。这些类将底原创 2021-08-05 14:31:27 · 973 阅读 · 24 评论 -
项目经理问我Java内存区域模型!急急急
也就这么点吧Java内存区域主要分为:堆,栈,方法区三大部分1、堆:是内存区域中最大的部分,所有线程共享,其中存放创建的对象和数组。由于堆是垃圾收集器管理的主要区域,因此也叫GC堆。2、栈:线程私有,与线程共生死。也就是每个线程JVM都会给它创建一片栈内存。栈内存又分为:虚拟机栈,本地方法栈,和程序计数器虚拟机栈用来描述Java方法的执行过程。每个方法的执行对应一个栈帧的入栈,方法的返回对应栈帧的出栈。本地方法栈与虚拟机栈类似,区别是本地方法栈尾Native方法服务。Native方法也就是非Ja原创 2021-07-23 20:58:18 · 371 阅读 · 1 评论 -
掌握JVM 运行时数据区,其实不是很难,加薪也是要技巧可言的!!!
一、概念Java 内存区域和内存模型是不一样的东西,内存区域是指 Jvm 运行时将数据分区域存储,强调对内存空间的划分。而内存模型(Java Memory Model,简称 JMM )是定义了线程和主内存之间的抽象关系,即 JMM 定义了 JVM 在计算机内存(RAM)中的工作方式,如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。二、JVM 运行时数据区结构图1、java虚拟机规范中的结构图2、java1.8 虚拟机(HotSpot)中的数据区域三、各个区域简介1、原创 2021-07-23 14:50:37 · 1475 阅读 · 9 评论 -
因为我把JMM原理讲解了一遍,这给足了我涨薪的底气!
一、什么是JMM?JMM指的是Java内存模型,即 Java Memory ModelJava内存模型并不是一种实际存在的东西,而是一种人为形成的约定,是一种概念。关于JMM,我们需要了解一些相关的同步约定 :线程在解锁前,必须将线程中的工作内存中存储的值即时刷新到主内存中的共享变量!线程在加锁前,必须读取主存中的最新值到工作内存中!加锁和解锁是同一把锁!线程中操作的数据要从主内存中读取,并备份到线程自己的工作内存中,作为副本,主存并不会主动向线程更新数据。线程的八种内存交互.原创 2021-07-22 21:51:03 · 573 阅读 · 3 评论 -
面试阿里被问到JVM,不逼逼赖赖,直接盘给面试官看!!!
面试阿里被问到JVM,不逼逼赖赖,直接盘给面试官看!!!概述JVM体系结构类加载机制类加载器类加载过程双亲委派机制全盘负责委托机制打破双亲委派机制自定义类加载器实现JVM运行时数据区程序计数器虚拟机栈本地方法栈堆方法区(元空间)运行时常量池直接内存垃圾回收机制GC对象判定方法垃圾收集算法垃圾收集器JVM调优参数概述JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。J.原创 2021-07-21 20:04:47 · 3498 阅读 · 6 评论 -
初级Java开发面试必问项!!! 标识符、字面值、变量、数据类型,该学学了!
最近事情太多,没太时间写博客。今天抽空再整理整理面试中的那点事吧,帮助那些正在找工作或想跳槽找工作的学弟学妹们。前面我己写过多篇推文,相信看过我文章的伙伴们已经了解掌握了不少。从目前流行的开发技术、常见的面试问题以及问题的答案都已经写的特别清楚了,今天我给写一篇初级Java开发面试必问项!供大家阅读参考。标识符关于java语言当中的标识符1、什么是标识符在java源程序当中凡是程序员有权利自己命名的单词都是标识符标识符在EditPlus编辑器当中以黑色字体高亮显示标识符可以标识什么元素呢?原创 2021-07-21 14:29:50 · 1715 阅读 · 16 评论 -
一个问题让我直接闭门思过!!!拼多多面试必问项之List实现类:LinkedList
一、LinkedList概述1、对于频繁的插入或删除元素的操作,建议使用LinkedList类,效率较高。2、LinkedList是一个实现了List接口和Deque接口的双端链表。3、LinkedList底层的链表结构使它支持高效的插入和删除操作,另外它实现了Deque接口,使得LinkedList类也具有 List 的操作以及双端队列和栈的性质。4、LinkedList不是线程安全的,如果想使LinkedList变成线程安全的,可以调用静态类Collections类中的synchronized原创 2021-07-11 15:41:44 · 914 阅读 · 5 评论 -
Java面试会问的——数组、声明、初始化、冒泡、多维数组、稀疏数组
数组数组时相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成其中,每一个数据称作一个数组元素,每一个数组元素可以通过一个下标来访问它们。数组声明创建首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法。da taType[] arrayRefVar //首选方法dateType arrayRefVar[] //效果相同,但不是首选方法java语言使用new操作符来创建数组,语法如下:dateType[] arrayRef原创 2021-07-10 21:41:51 · 1246 阅读 · 11 评论 -
大厂Java初级开发工程师!!!面试必问项之Set实现类:TreeSet
一、TreeSet 概述1、TreeSet是 SortedSet 接口的实现类, TreeSet 可以确保集合元素处于排序状态。2、TreeSet顾名思义他内部维护的是一个TreeMap,底层是红黑二叉树,他使得集合内都是有序的序列。3、Tree可以按照添加对象的指定属性,进行排序,所以向TreeSet中添加的数据,要求是相同类的对象。4、两种排序方式:自然排序(实现Comparable接口) 和 定制排序(Comparator);5、自然排序中,比较两个对象是否相同的标准为.原创 2021-07-10 15:53:47 · 4548 阅读 · 10 评论 -
世道变了,面试初级Java开发会问到Arrays!!!你不会还不知道吧!
一、基本定义Arrays类,全路径java.util.Arrays,主要功能为操作数组,Arrays类的所有方法均为静态方法,所以调用方式全部为Arrays.方法名二、常用方法1. <T> List<T> asList(T... a)可以将数组转化为相应的list集合,但是也只能转化为list,asList方法内部构建了一个内部静态类ArrayList,这个ArrayList也继承自AbstractList,但并不是我们集合中常用的ArrayList,这两者是有区别.原创 2021-07-09 22:32:17 · 2687 阅读 · 11 评论 -
秋招面试我去了拼多多,直接被问JVM&GC底层原理和算法,我吊打面试官
JVM 常用参数设置积累# 堆的初始值,默认物理内存的1/64-Xms:# 堆的最大值,默认物理内存的1/4-Xmx:# 年轻代大小「在整个堆内存大小确定的情况下,增大年轻代将会减小年老代,反之亦然。此值关系到JVM垃圾回收,对系统性能影响较大,官方推荐配置为整个堆大小的3/8」-Xmn:# 设置年轻代初始值为 1024 M-XX:NewSize=1024# 设置年轻代最大值为 1024 M-XX:MaxNewSize=1024m# 设置线程栈大小,设置越小,说明一个线程栈里面能分配.原创 2021-07-07 15:57:16 · 696 阅读 · 3 评论 -
【每日分享】我做程序员那些年犯下的罪,此时此刻我自己的笑出猪叫~
以前我刚入行,总是会犯这样几个常见错误,后面想起来是真的SB。当然每个程序员会犯错,重要的是从中吸取教训,得到成长。那么这些错误到底是什么呢?我来给大家盘点一下!!!当我感觉我测试的代码一点很棒棒,然而现实却是…我设计的接口和别人调用的接口甚至穿着NIKE鞋的测试在一旁外表紧张,内心有点点愉快咱们总得拥抱变化,可惜这个道理我懂得太晚了”躺在医院的的病床上,我才追悔莫及。明明是个小bug,但就是死活修不好终极 Bug 的 4 个走向多年的测试经验中,经常发现有这么一种现象:总有些提了的 bu原创 2021-07-07 14:35:55 · 4767 阅读 · 42 评论 -
TDengine和DolphinDB哪个更好,哈哈哈哈,闲来无聊分析了一下。
TDengine是专为时序数据设计的,针对的是物联网、工业互联网、IT运维场景。这些场景是不需要特殊的查询函数的,更关心的是写入速度、查询速度。而且这些场景下,也需要一些其他数据库不具备的功能,比如插值、时间聚合等等如果要问TDengine和DolphinDB最大的特色,存储引擎可能是TDengine最大的特色,性能也非常好;DolphinDB的最大特色毫无疑问是它的计算引擎。可以毫不夸张的说,DolphinDB的计算引擎是所有类别的国内外数据库中最有特色的之一。这跟DolphinDB从金融起步有关(金融原创 2021-07-07 13:51:45 · 3978 阅读 · 11 评论 -
超详细图解!【MySQL进阶篇】MySQL架构原理
MySQL体系架构MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层。一、网络连接层客户端连接器(Client Connectors):提供与MySQL服务器建立的支持。目前几乎支持所有主流的服务端编程技术,例如常见的 Java、C、Python、.NET等,它们通过各自API技术与MySQL建立连接。二、服务层(MySQL Server)服务层是MySQL Server的核心,主要包含系统管理和控制工具、连接池、SQL接口、解析器、查询优****化器原创 2021-07-04 15:00:35 · 3234 阅读 · 9 评论 -
超详细图解!【MySQL进阶篇】MySQL事务和锁
ACID 特性在关系型数据库管理系统中,一个逻辑工作单元要成为事务,必须满足这 4 个特性,即所谓的 ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。原子性原子性:事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。修改—》Buffer Pool修改—》刷盘。可能会有下面两种情况:【白嫖资料】事务提交了,如果此时Buffer Pool的脏页没有刷盘,如何保证修改的数据生效? Redo如果原创 2021-07-04 14:36:58 · 1029 阅读 · 3 评论 -
面试被问到Java 静态代理/动态代理?不用怕,这样子就可以!!
理解Java动态代理需要对Java的反射机制有一定了解什么是代理模式#在有些情况下,一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象。例如,购买火车票不一定要去火车站买,可以通过 12306 网站或者去火车票代售点买。又如找女朋友、找保姆、找工作等都可以通过找中介完成。定义#由于某些原因需要给某对象提供一个代理以控制对该对象的访问。访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。代理模式的主要角色#抽象.原创 2021-06-30 21:47:49 · 2096 阅读 · 11 评论 -
史上最全图详解Jvm—诊断工具和JVM监控
3.1. 工具概述使用上一章命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但它们存在下列局限:1.无法获取方法级别的分析数据,如方法间的调用关系、各方法的调用次数和调用时间等(这对定位应用性能瓶颈至关重要)。2.要求用户登录到目标 Java 应用所在的宿主机上,使用起来不是很方便。3.分析数据通过终端输出,结果展示不够直观。为此,JDK提供了一些内存泄漏的分析工具,如jconsole,jvisualvm等,用于辅助开发人员定位问题,但是这些工具很多时候并不足以满足快原创 2021-06-30 21:40:43 · 1721 阅读 · 12 评论 -
测试String, StringBuilder,StringBuffer 的数据,我居然发现这些了~~
懒的搞什么开头了,直接撸代码吧想了想还是给大家看看学姐照片吧,保持眼睛的明亮,代码敲多了,伤眼1: 作StringBuilder与String的拼接比较@Testpublic void testString () { String s=""; long begin = System.currentTimeMillis(); for(int i=0; i<500000; i++){ String s1 = "YYYYYYYYYYYYYYYYYYYYY原创 2021-06-30 21:16:18 · 1981 阅读 · 7 评论 -
Java秘技之Json数据解析与转换 -- Java使用示例
概要json是前后台交互常用的数据格式,在java后台中经常需要实现java bean、list和json字符串的相互转化,故简单介绍不同框架的使用,提供简单工具类。在Java中,常见的json框架有:Jackson(springboot默认)、fastjson(阿里开源)、Gson(谷歌开源)。网络有它们的性能对比研究,此处不做讨论,根据自己习惯来选择即可。json的数据结构包括:{}、[],等同于java的对象、数组。两者相互组合,就能够表达很复杂的数据结构了。使用Fastjon添加Mav原创 2021-06-29 23:19:40 · 891 阅读 · 5 评论 -
今日笔记!——分析Java应用性能
1 问题描述因产品架构的复杂性,可能会导致性能问题的因素有很多。根据部署架构,大致的可以分为应用端瓶颈、数据库端瓶颈、环境瓶颈三大类。可以根据瓶颈的不同部位,选择相应的跟踪工具进行跟踪分析。应用层面瓶颈大致有如下两类,一是应用服务端复杂的逻辑处理导致应用端代码执行慢;二是资源锁争用导致线程阻塞问题(最典型的特征是线程状态为“java.lang.Thread.State: BLOCKED (on object monitor)”)等。数据库层面瓶颈表现出来的现象都是SQL执行慢,其原因可分为两种,一是因原创 2021-06-26 15:59:08 · 807 阅读 · 3 评论 -
初级Java开发工程师!绝密文档,面试手册全面突击!!!秋招已经到来
这里我要明说一下,不是Java初级和学习Java的千万不要乱看,否则~~~~你会怀疑人生,因为会浪费你时间啊!!!本次考点是Java初级开发工程师面试必备的一些东西!!!1、数据类型基本类型byte/8、short/16、int/32、long/64、boolean/ 、char/16、float/32、double/64boolean只有两个值,true、false,可以使用1bit来存储,但是具体大小没有明确规定,JVM会在编译时期将boolean类型转为int,使用1来表示true..原创 2021-06-25 23:28:39 · 1339 阅读 · 13 评论 -
直接裂开!京东二面被问SpringBoot整合MongoDB,我不会啊
开始进入正题一、技术介绍SpringBoot整合MongoDB的实现步骤一、技术介绍1.MongoDB是什么?二、使用步骤1.MongoDB是什么?MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是可以应用于各种规模的企业、各个行业以及各类应用程序的开源数据库。作为一个适用于敏捷开发的数据库,MongoDB的数据模式可以随着应用程序的发展而灵活地更新。与此同时,它也为开发人员 提供了传统数据库的功能:二级索引,完整的查询系统以及严格一致性等等。 MongoDB能够使.原创 2021-06-23 16:28:50 · 3679 阅读 · 15 评论 -
阿里最新面试必备项之Java的String类,持续更新中!
最新腾讯面试必备项之Java的String类,持续更新中!1.1 String的特性String类:代表字符串。Java程序中的所有字符串字面值(如“abc”)都作为此类的实例实现。String是一个final类,代表不可变的字符序列。String字符串是常量,用双引号引起来表示。他们的值在创建之后不能更改。String对象的找字符内容是存储在一个字符数组value[]中的。(jdk新版本已改为使用byte类型的数组value[]存放)1.2 String字面量赋值的内存理原创 2021-06-21 23:11:12 · 1538 阅读 · 10 评论 -
我已经把它摸的透透的了!!!Spring 动态数据源设计实践,全面解析
Spring 动态数据源动态数据源是什么?它能解决什么???在实际的开发中,同一个项目中使用多个数据源是很常见的场景。比如,一个读写分离的项目存在主数据源与读数据源。所谓动态数据源,就是通过Spring的一些配置来自动控制某段数据操作逻辑是走哪一个数据源。举个读写分离的例子,项目中引用了两个数据源,master、slave。通过Spring配置或扩展能力来使得一个接口中调用了查询方法会自动使用slave数据源。一般实现这种效果可以通过: 使用@MapperScan注解指定某个包下的所有方法走.原创 2021-06-17 16:53:27 · 889 阅读 · 6 评论 -
这次牛逼了,面试字节被问LinkedList原理了!手足无措啊
概述LinkedList底层是基于链表实现。链表没有长度限制,内存地址不需要固定长度,也不需要是连续的地址来进行存储,只需要通过引用来关联前后元素即可完成整个链表的连续。所以链表的优点就是添加删除元素比较快,只需要移动指针,并且不需要判断扩容。缺点就是因为没有索引,所以在查询和遍历元素时候比较慢。使用场景:在增删操作使用较多,查询遍历操作使用较少情况下比较适合去使用;例如:拿来当栈使用。数据结构继承实现关系1 public class LinkedList<E>2 exte.原创 2021-06-16 22:46:32 · 739 阅读 · 10 评论 -
学妹问我Java枚举类与注解,我直接用这个搞定她!
很多人问我学妹长什么样,不多说 上图吧!学妹问我Java枚举类与注解,我直接一篇文章搞定!一、枚举类① 自定义枚举类② enum关键字定义枚举类③ enum 枚举类的方法④ enum 枚举类实现接口二、注解① 生成文档相关注解②注解在编译时进行格式检查③注解跟踪代码的依赖性,实现替代配置文件功能④ 自定义注解⑤ jdk提供的4种元注解⑥ JKD8 新特性:可重复注解⑦ JDK8 新特性:类型注解【获取资料】一、枚举类类的对象只有有限个, 确定的. 我们称此类为枚举类.说明:1.类的对象只有原创 2021-06-15 21:28:33 · 2950 阅读 · 42 评论 -
学妹面试拼刀刀被问Java策略模式是什么鬼?哈哈哈哈
学妹面试拼刀刀被问Java策略模式是什么鬼?哈哈哈哈 学妹跟我讲怎么机智面对的 我呆了!????1.策略模式到底是什么鬼捏???????策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。简单的说,策略模式代表了一类算法的通用解决方案,你可以在运行时选择使用哪种解决方案。 策略模式的重心????策略模式的重心不是如何实现算法, 而是如何组织、调用这些算法, 从而使得程序结原创 2021-06-15 14:28:21 · 10054 阅读 · 36 评论 -
华为面试官问我:你真的明白Java垃圾回收器吗?我生气了!!(︶︿︶)
第一阶段:串行垃圾回收器:jdk1.3.1之前Java虚拟机仅仅只支持Serial收集器第二阶段:并行垃圾回收器:随着多核的出现,Java引入了并行垃圾回收器,充分利用多核性能提升垃圾回收效率第三阶段:并发标记清理回收器CMS:垃圾回收器可以和应用程序同时运行,降低暂停用户线程执行的时间第四阶段:G1(并发)回收器:初衷是在清理非常大的堆空间的时候能满足特定的暂停应用程序的时间,与CMS相比会有更少的内存碎片【资料获取】1 垃圾回收算法1-1 标记清除算法算法概述优点:回收速度快..原创 2021-06-10 17:14:56 · 10853 阅读 · 83 评论 -
二面京东,面试官直接问我JVM,我心里一阵暗爽~
二面京东,面试官直接问我JVM,我心里一阵暗爽~简直了,hhhh明人不说暗话,直接进入主题!!!一、什么是JVM二、JAVA代码编译和执行过程类加载机制类执行机制三、JVM内存管理和垃圾回收垃圾回收按照基本回收策略分JVM分别对新生代和旧生代采用不同的垃圾回收机制新生代的GC:与旧生代的并发GC配合使用旧生代的GC:四、JVM内存调优(1)新生代设置过小(2)新生代设置过大(3)Survivor设置过小(4)Survivor设置过大最后汇总一下JVM常见配置堆设置收集器设置垃圾回收统计信息并行收集器设置并发原创 2021-06-09 23:00:04 · 6267 阅读 · 32 评论 -
高考落榜怎么办,奉劝学弟学妹们一些事情,请一定要擦亮眼睛
在目前这个社会情况Java技术是当前社会的一个热门专业,无论是pc端还是移动端对java的需求都是最多的,大学生学java正好顺应时代的发展,不仅有钱途还有前途,Java也适合零基础的人学习。最近看见一句话 高考不努力,学习Java做兄弟,挺意外的 我觉得还是那么一句话 高考落榜,并非是人生落榜,努力的人一定会有结果收到回报所以大学生零基础学Java是可以的,并且是个不错的选择如果在大学期间能系统的学习Java当然是最好的,但是这并不是说毕业后学习Java开发就来不及了。毕业之后学习Java开发.原创 2021-06-08 13:53:50 · 3723 阅读 · 21 评论 -
我丢,去面试初级Java开发岗位,被问到泛型?
1、泛型的基础概念1.1 为什么需要泛型 List list = new ArrayList();//默认类型是Object list.add("A123"); list.add("B234"); list.add("C345"); System.out.println(list); for(int i=0;i<list.size();i++){ //若要将list中的元素赋给.原创 2021-06-07 21:25:51 · 6938 阅读 · 49 评论 -
面试避坑手册之 Java字节流和字符流总结IO流!
从接收输入值说起在日常的开发应用中,有时候需要直接接收外部设备如键盘等的输入值,而对于这种数据的接收方式,我们一般有三种方法:字节流读取,字符流读取,Scanner 工具类读取。字节流读取直接看一个例子:public class Demo01SystemIn { public static void main(String[] args) throws IOException { int a = System.in.read(); System.out.pri原创 2021-06-07 18:01:57 · 842 阅读 · 10 评论 -
被问到了!为什么一定要使用分布式,内行啊
一、为什么要使用分布式如果需求要测试 4000 虚拟用户数,而本机只能支持1000 虚拟用户,如果测试结果有可能是电脑的问题,而不是服务器的问题,所以需要把其他虚拟用户分配到多台电脑上把虚拟用户数分配到其他电脑上面去执行,执行结束后,在主电脑上查看执行结果就可以二、什么是分布式测试分布式测试是指通过局域网和Internet,把分布于不同地点、独立完成特定功能的测试计算机连接起来,以达到测试资源共享、分散操作、集中管理、协同工作、负载均衡、测试过程监控等目的的计算机网络测试三、执行原理对分布式测.原创 2021-06-02 15:57:03 · 1058 阅读 · 9 评论 -
京东面试官:呦,你对中间件 Mycat了解的还挺深~
1.数据切分概念数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模式。一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切可以称之为数据的垂直(纵向)切分;另外一则是根据表中的数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库(主机)上面,这种切分称之为数据的水平(横向)切分。 垂直切分的最大特点就是规则简单,实施也更为方便,尤其适合各业务之间的耦合度非常低,相互影响很小,业务逻辑非常清晰的系统。在这种系统中,可以很容易做到将不同业务模块所使用的.原创 2021-05-30 09:02:19 · 1913 阅读 · 9 评论 -
针对Spring的Spring Retry 我发现了这样一个大家都不知道的技巧!
外部服务对于调用者来说一般都是不可靠的,尤其是在网络环境比较差的情况下,网络抖动很容易导致请求超时等异常情况,这时候就需要使用失败重试策略重新调用 API 接口来获取。重试策略在服务治理方面也有很广泛的使用,通过定时检测,来查看服务是否存活。Spring异常重试框架Spring RetrySpring Retry支持集成到Spring或者Spring Boot项目中,而它支持AOP的切面注入写法,所以在引入时必须引入aspectjweaver.jar包。1.引入maven依赖 <depende原创 2021-05-27 21:34:47 · 1289 阅读 · 33 评论 -
二面京东被问到Java 反射,我直呼好家伙,这我不是必过吗?
二面京东被问到Java 反射,我直呼好家伙,这我不是必过吗?用多久我会升职加薪、当上技术总监、迎娶漂亮学姐、走上人生巅峰!想想还有点小激动。好了开始分享面试经历说说你反射的理解到底什么是反射呢???反射的核心就是JVM在运行时才动态加载类或调用方法,访问属性,它不需要事先(写代码的时候或编译期)知道运行对象是谁。每一个类都会产生一个对应的Class对象,也就是保存在.class文件。所有类都是在对其第一次使用时,动态加载到JVM的,当程序创建一个对类的静态成员的引用时,就会加载这个类,Clas原创 2021-05-25 21:45:40 · 13552 阅读 · 56 评论