
java
文章平均质量分 63
徐师兄学姿势
成年人的世界没有容易二字,加油!!!
展开
-
如何计算CPU使用率
写在前面一般来说对于需要大量cpu计算的进程,当前端压力越大时,CPU利用率越高。但对于I/O网络密集型的进程,即使请求很多,服务器的CPU也不一定很到,这时的服务瓶颈一般是在磁盘的I/O上。比较常见的就是,大文件频繁读写的cpu开销远小于小文件频繁读写的开销,小文件的读写更加频繁,需要更多的cpu来处理I/O的中断。怎么判断CPU使用率偏高?以及为什么会偏高这篇文章可能讲的更清楚CPU使用率怎么计算?详情点击HTTP2和HTTP3有了解过吗?...原创 2021-01-14 13:53:05 · 2017 阅读 · 0 评论 -
Nginx
写在前面:Nginx和Tomcat/Jboss的区别首先说一下Tomcat和Jboss的区别:Tomcat是一个Apache开源的Java Web(Servlet容器)应用服务器;Jboss基于Tomcat内核,青胜于蓝,在很多方面性能优于Tomcat:JBoss Web在活动连接支持、静态内容、大文件和HTTPS方面更优,不仅仅支持JAVA,还支持PHP,.NET等Nginx是一个Web Server,不仅仅支持HTTP的请求协议,多数用来静态内容(HTML文件,图片文件等)服务和代理服务器HT.原创 2021-01-11 15:37:34 · 184 阅读 · 2 评论 -
二面面经
项目中的亮点 以及困难怎么去解决?点赞接口使用了redis的分布式锁,set命令 将设置key 以及Key的expire time一起设置,保证了命令执行的原子性,不会出现被别的请求释放锁导致出问题;目前使用的Jedis操作redis,我建议使用Redission来操作redis,提供了很多分布式说的 解决方案;然后可以说一下 redis的底层数据结构(dicEntry 里面有 SDS 和 redisObject :SDS(String) 双向链表(List) 字典(哈希表 哈希冲突使用链地址法 哈希表原创 2021-01-03 23:02:16 · 133 阅读 · 0 评论 -
CAS原理
今天看ribbon的源码有一个同步代码用到了CAS,想来好奇,加上CAS是JAVA并发的很重要的思想直接贴源码,其中一个定时任务TimeTask,用于检查本地服务列表每个服务的健康状态是否可用 /** * TimerTask that keeps runs every X seconds to check the status of each * server/node in the Server List * * @author stonse * */public v.原创 2021-01-01 21:39:39 · 129 阅读 · 2 评论 -
面试必问之HTTPS&HTTP&WebSocket
一篇文章带你彻底搞懂HTTP&HTTPS&WebSocket个人觉得带着常见的面试题或者工作需求去学习一个技术是比较有目的性的,比平时摸鱼时间看文章要认真的多,效率也自然高;好的,废话不多说,直接上面试题。1. (腾讯)说一下HTTPS的整体流程2. (字节)HTTPS用的非对称还是对称加密?都是非对称加密吗?哪些地方用到了对称加密?3. (字节)在浏览器输入网址回车后发生了什么?浏览器拿到网址,会首先进行域名解析(根据域名找出对应的IP地址)。此时会存原创 2020-11-09 22:06:03 · 414 阅读 · 0 评论 -
1.5年Java开发经验面试字节跳动总结
写在前面字节的面试官都比较好,社招面试字节的话尽量走内推,然后HR会跟你定面试时间,现在面试大都是视频面试,字节一般是在牛客网上,会有一两道算法题,不过不会太难,一般都是LeetCode上简单到中等难度的题,所以大家不要把字节的算法想的太难,要把数据结构的基础足够重视,然后灵活利用这些基本的数据结构去解决问题,然后面试官会直接从你的项目中开始聊,所以项目一定要写自己负责的模块,以及遇到的困难怎么去解决的等等。经典问题回顾在涉及支付的接口是如何保证接口的高可用,以及在遇到弱网条件下,发出的请求没有原创 2020-10-17 10:42:32 · 1189 阅读 · 7 评论 -
初探JVM
写在前面关于JDK&JRE&JVM的关系JDK是对于Java开发的工具,包括了JRE(是Java运行的环境包括了JVM)(是Java跨平台的保证,不同操作系统不同JVM)和Java核心类库)和Java开发工具JDK(Java Development Kit) JRE(Java Runtime Environment) JVM(Java Virtual Machine)首先从class文件开始通过javac Person.java对java源码文件进行编译成Person.clas原创 2020-10-14 20:45:58 · 95 阅读 · 0 评论 -
关于HTTPS和HTTP的开发bug
首先HTTPS&HTTP的区别这里不多说了详细请点击bug描述:本地Windows起来项目接口正常,部署Linux就不行了javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?//,,,其他略这个异常导致程序不能正常执行了但是本地起来捕获的异常不影响正常执行java.security.NoSuchAlgorithmException: TSL SSLContext not availab原创 2020-10-10 13:25:07 · 221 阅读 · 0 评论 -
华为机考精选
实现加减乘除(输入表达式输出计算值)牛客题号:HJ50输入:3+2*{1+2*[-4/(8-6)+7]}输出:25字符统计 牛课题号HJ102合并表记录 牛客题号HJ8原创 2020-09-14 22:34:59 · 748 阅读 · 0 评论 -
Java笔试机考必备技能Scanner类常用操作
博主最近准备面试,发现很多公司机考题跟LeetCode不一样,不是只是关注核心逻辑部分,而是连测试数据都要自行控制台输入;那么为了避免对Scanner类常用方法不熟的同学遇到不必要的麻烦,今天准备收集一下Scanner的常用操作。通常用比较多的就是s.nextLine(),获取当前行的内容 让后光标停留在下一行。如何控制输入的行数呢?无非就是通过控制循环的次数。常用的while然后指定输入的哪一个字符就跳出循环for循环也可以,先nextLine获取一个控制循环的次数当然if也可以,道理跟.原创 2020-09-01 16:26:13 · 575 阅读 · 0 评论 -
Java面试突击篇
Mybatis#{} 和 $ {}的区别?#{}是预编译处理 而${}是字符串替换#{}可以防止SQL注入,先将#{}里面替换成?,然后调用PreparedStatement.set()来赋值模糊查询like怎么写?<if test="keyword != null and keyword != ''"> and name like concat('%',#{keyword},'%')</if>Mapper里面的方法能够重载吗?是不能的,Mybatis原创 2020-08-31 17:48:54 · 511 阅读 · 1 评论 -
一年Java开发经验面试招行总结
首先自我简单介绍一下吧?在职为什么要换城市?先从你的项目中你认为业务比较复杂的说一说?(好戏开始)说到一个类似朋友圈的社区功能,二级评论,有点赞;建了三个表分别是说说表以及一级评论以及二级评论,刚开始没用redis来做点赞所以单独建了一个点赞表;然后三个表left join on使用resultMap的collection标签一次性返回一个说说的所有信息。然后使用redis的set来做点赞计数以及是否点过赞 以及 那些用户点赞sismember scard smembers;这个时候面试官说.原创 2020-08-31 15:04:22 · 1470 阅读 · 2 评论 -
MySQL报错!Data truncation: Out of range value for colum
表面上看是字段设置的不够长,其实这里面隐藏一个小知识,关于无符号数和有符号数今天项目表中有一个userId int(11)和mobilephone varchar(11)字段 因为某种业务需求 这两个字段设置的内容一样;varchar类型存手机号 肯定没问题 手机号就是11位;但是存userId的时候 就不行了,我们知道:对于 int类型来说 存储有符号数 和 无符号数的 范围是不一样的:有符号数:[-2^31, 2^31 - 1]无符号数:[0, 2^32 - 1]int(11)默认是存储的原创 2020-07-24 16:51:28 · 5363 阅读 · 0 评论 -
弹匣子栈与队列
为什么叫stack栈别名是——弹匣子呢?last in first out后进先出定义术语:栈(stack)是仅限于在表尾进行删除和插入的线性表其中允许进行插入和删除操作的表尾——栈顶top另一端——栈底bottom1.1 stack栈的定义...原创 2020-07-19 18:52:04 · 393 阅读 · 0 评论 -
Java实现手动分页
场景描述:在使用mybatis-paginator插件对结果集进行分页处理项目迭代:要求对结果集当中对象的某个字段为0的进行过滤思考:小明说这个还不简单?于是直接对分页结果集进行过滤PageBounds pageBounds = getPageBounds(page, limit, null, null);List<Map<String, Object>> regionList = regionImpl.getRegionByMonthId(month, pageBoun原创 2020-07-13 14:53:42 · 4407 阅读 · 0 评论 -
MySQL索引大解析
1、理解索引本质索引是一个存储 每行数据的磁盘地址 的数据结构:提高查询和更新数据库表的速度全表扫描 and 走索引检索这个数据结构里面放的健值对(一般key就是咱们添加索引的字段,值就是对应的磁盘地址)索引类型:normal:普通的索引,没啥特殊要求unique:唯一索引,字段的值不能重复特殊的唯一索引:primary key主键,而且不能为nullfull text: 文本类型的字段,匹配某个字段like,可以创建全文索引,char,varchar,text这时候不需要用like原创 2020-07-06 10:58:55 · 398 阅读 · 0 评论 -
Java随机数以及double和float的区别
徐师兄去年毕业到现在也有1年的crud经验了,金九银十准备好好打基础。直接上代码,关于一个中奖概率性问题DecimalFormat df = new DecimalFormat("#0.0");int randomInt = RandomUtils.nextInt(0, 100);System.out.println(randomInt);if (randomInt>10){ System.out.println("概率为90%"); // 产生0.1-1之间随机数 S原创 2020-07-04 11:47:29 · 714 阅读 · 0 评论 -
Java对List集合中的对象的某个中文字段按照拼音首字母进行排序
徐师兄这次开门见山上代码!由于没时间整理直接controller层写了一个测试代码@RequestMapping(value = "/get", method = RequestMethod.GET) public Object get(){ List<Map<String, Object>> list = testMapper.get(); List<String> nameList = list.stream(原创 2020-07-01 21:44:33 · 4691 阅读 · 2 评论