2024年12月18日
摘要: 一、写在开头 在OSI七层协议模型中应用层是距离我们最近,且日后开发使用到最多的一层,在上一篇博文中我们已经学习了应用层中的HTTP协议,在本文中我们再一起来学一下DNS。啥?DNS不是很了解?那还不快往下看! ❝ 其实早几年和一个朋友聊天,当时,他是一个网络条线的技术经理,向我吐槽说,现在来面试的 阅读全文
posted @ 2024-12-18 08:30 JavaBuild 阅读(1490) 评论(0) 推荐(7) 编辑
  2024年10月28日
摘要: 一、写在开头 前几篇博文大概介绍了什么是网络编程,以及网络编程的实战作用,今日起,我们将针对里面涉及到的重要知识点,进行详细的梳理与学习! 在整个WEB编程中,有个应用层的协议是我们无法跳过的,那就是HTTP,一个超文本传输协议 我们浏览网页的时候,它总是第一个出现,我们今天就来学习了解一下它。 二 阅读全文
posted @ 2024-10-28 15:43 JavaBuild 阅读(517) 评论(0) 推荐(2) 编辑
  2024年10月15日
摘要: 一、写在开头 最近有同学私信说自己去面试时,被面试官一个小问题给难住了,一个关于网络连通性的问题,面试官问这位同学: “日常中,如何测试两台主机之间的网络连通性,网络延迟,端口是否开放?并说一说原理” 这种问题在过完的面试中从没见过,毕竟太细小了,对于任何一个有工作经验的程序员来说,这都不算是问题, 阅读全文
posted @ 2024-10-15 16:49 JavaBuild 阅读(2294) 评论(7) 推荐(0) 编辑
  2024年10月12日
摘要: 一、写在开头 本文的主题是和大家一起探讨学习:“在浏览器中输入URL开始后,计算机所做的几件事”,这个问题是好几年前自己面试的时候,面试官考问过的,当时准备十分不充分,回答的一塌糊涂,今天拿出来再整理学习一遍,一同进步! 其实这个问题本身倒是不难,但它巧妙的是可以将我们所学过的网络编程知识给串联起来 阅读全文
posted @ 2024-10-12 08:53 JavaBuild 阅读(657) 评论(1) 推荐(2) 编辑
  2024年10月7日
摘要: 一、写在开头 大家好,Build哥回来啦!停更了大概2个月之久,之前有段时间去写小说去了,后来又因为公司活太多,牛马干的太投入,就拉下了博客的更新,国庆节期间,难得的闲下来,准备回归老本行啦。 大致的翻看了一下之前更新的内容,已经写到了Java的IO部分,作为网络传输的一大重点知识,IO至关重要,而 阅读全文
posted @ 2024-10-07 10:16 JavaBuild 阅读(772) 评论(1) 推荐(1) 编辑
  2024年7月22日
摘要: 一、写在开头 我们在上一篇博文中提到了Java IO中常见得三大模型(BIO,NIO,AIO),其中NIO是我们在日常开发中使用比较多的一种IO模型,我们今天就一起来详细的学习一下。 在传统的IO中,多以这种同步阻塞的IO模型为主,程序发起IO请求后,处理线程处于阻塞状态,直到请求的IO数据从内核空 阅读全文
posted @ 2024-07-22 19:31 JavaBuild 阅读(451) 评论(0) 推荐(1) 编辑
  2024年7月15日
摘要: 一、写在开头 很久没更新喽,最近build哥一直在忙着工作,忙着写小说,都忘记学习自己的本职了,哈哈,不过现在正式回归! 我们继续学习Java的IO相关内容,之前我们了解到,所谓的IO(Input/Output)就是计算机系统与外部设备之间通信的过程。 二、IO调用过程 接下来我们从应用调用的过程中 阅读全文
posted @ 2024-07-15 08:36 JavaBuild 阅读(434) 评论(0) 推荐(1) 编辑
  2024年6月27日
摘要: 一、写在开头 在这篇文章中记录一下之前自己面试时学到的东西,是关于transient关键字的,当时面试官问我IO的相关问题,基本上全答出来了,关于如何不序列化对象中某个字段时,我果断的选择了static和transient,但面试官紧接着问了我:“transient关键字修饰的变量当真不可序列化吗? 阅读全文
posted @ 2024-06-27 15:06 JavaBuild 阅读(308) 评论(1) 推荐(0) 编辑
  2024年6月23日
摘要: 一、写在开头 在上一篇学习序列化的文章中我们提出了这样的一个问题: “如果在我的对象中,有些变量并不想被序列化应该怎么办呢?” 当时给的回答是:不想被序列化的变量我们可以使用transient或static关键字修饰;transient 关键字的作用是阻止实例中那些用此关键字修饰的的变量序列化;当对 阅读全文
posted @ 2024-06-23 17:48 JavaBuild 阅读(382) 评论(0) 推荐(0) 编辑
  2024年6月20日
摘要: 中午一个网友来信说自己和面试官干起来了,看完他的描述真是苦笑不得,这年头是怎么了,最近互联网CS消息满天飞,怎么连面试官都SB起来了呢? 大概是这样的:这位网友面试时被问及了Serializable接口的底层实现原理,因为这是一个标识性的空接口,大部分同学在学习时都秉持着会用就行(说实话,Build 阅读全文
posted @ 2024-06-20 14:09 JavaBuild 阅读(1918) 评论(5) 推荐(2) 编辑
  2024年6月17日
摘要: 一、写在开头 上一篇文章中,我们介绍了Java IO流中的4个基类:InputStream、OutputStream、Reader、Writer,那么这一篇中,我们将以四个基类所衍生出来,应对不同场景的数据流进行学习。 二、衍生数据流分类 我们上面说了java.io包中有40多个类,都从InputS 阅读全文
posted @ 2024-06-17 08:55 JavaBuild 阅读(260) 评论(0) 推荐(0) 编辑
  2024年6月15日
摘要: 一、写在开头 在计算机领域中百分之九十以上的程序拥有着和外部设备交互的功能,这就是我们常说的IO(Input/Output:输入/输出),所谓输入就是外部数据导入计算机内存中的过程,输出则是将内存或者说程序中的数据导入到外部存储中,如数据库、文件以及其他本地磁盘等。 二、什么是IO流 这种输入输出往 阅读全文
posted @ 2024-06-15 08:38 JavaBuild 阅读(800) 评论(0) 推荐(1) 编辑
  2024年6月14日
摘要: 一、写在开头 在我们一开始讲多线程的时候,提到过异步与同步的概念,这里面我们再回顾一下: 同步:调用方在调用某个方法后,等待被调用方返回结果;调用方在取得被调用方的返回值后,再继续运行。调用方顺序执行,同步等待被调用方的返回值,这就是阻塞式调用; 异步:调用方在调用某个方法后,直接返回,不需要等待被 阅读全文
posted @ 2024-06-14 09:41 JavaBuild 阅读(572) 评论(0) 推荐(4) 编辑
  2024年6月9日
摘要: 面试场景模拟 面试官:小伙子平时开发中用过线程池吗?聊一聊它 我:肯定用过啊,然后把build的线程池十八问一顿巴拉巴拉 面试官:不错不错,挺了解的嘛,那你知道怎么给线程池命名?手写一个工厂类给线程池命名吧 我:啊这,现场手撕吗?面试官默默的递上A4... 如何给线程池命名?这是一个好问题,如果我们 阅读全文
posted @ 2024-06-09 15:44 JavaBuild 阅读(392) 评论(0) 推荐(0) 编辑
  2024年6月6日
摘要: 我们在学线程的时候了解了几种创建线程的方式,比如继承Thread类,实现Runnable接口、Callable接口等,那对于线程池的使用,也需要去创建它,在这里我们提供2种构造线程池的方法: 方法一: 通过ThreadPoolExecutor构造函数来创建(首选) 这是JDK中最核心的线程池工具类, 阅读全文
posted @ 2024-06-06 08:29 JavaBuild 阅读(496) 评论(1) 推荐(2) 编辑
  2024年6月2日
摘要: 写在开头 面试官:“小伙子,线程池使用过吗,来聊一聊它吧!” 我:“好的,然后巴拉巴拉一顿输出之前看过的build哥线程池十八问...” 面试官满意的点了点头,紧接着问道:“那你知道如何优雅的关闭线程池吗?” 我:“知道知道,直接调用shutdownNow()方法就好了呀!” 面试官脸色一变,微怒道 阅读全文
posted @ 2024-06-02 09:52 JavaBuild 阅读(476) 评论(1) 推荐(0) 编辑
  2024年6月1日
摘要: 写在开头 什么!程序员不乖乖写代码,跑去写小说了?哈哈,没错!build哥一时兴起写了篇《雪中悍刀行》的番外,是关于剑九黄的,请诸君品鉴!(第一次写,喷轻点呀) build哥除了写代码之外,日常生活中挺喜欢看小说的,尤其是烽火戏诸侯的《雪中悍刀行》,可谓大爱,几乎每晚睡觉前必看。不过,这部小说去年就 阅读全文
posted @ 2024-06-01 15:35 JavaBuild 阅读(285) 评论(4) 推荐(0) 编辑
  2024年5月31日
摘要: 一、写在开头 在上一篇文章我们写《Java并发编程之线程池十八问》的时候,鉴于当时的篇幅已经过长,很多内容就没有扩展了,在这篇文章里对一些关键知识点进行对比补充。 二、Runnable vs Callable 在创建线程的时候,一般会选用 Runnable 和 Callable 两种方式。 【源码对 阅读全文
posted @ 2024-05-31 09:09 JavaBuild 阅读(297) 评论(0) 推荐(0) 编辑
  2024年5月30日
摘要: 写在开头 之前给一个大四正在找工作的学妹发了自己总结的关于Java并发中线程池的面试题集,总共18题,将之取名为《Java并发编程之线程池十八问》,今天聊天时受了学妹的夸赞,心里很开心,毕竟自己整理的东西对别人起到了一点帮助,记录一下! Java并发编程之线程池十八问 经过之前的学习,我们知道在Ja 阅读全文
posted @ 2024-05-30 09:39 JavaBuild 阅读(434) 评论(0) 推荐(1) 编辑
  2024年5月27日
摘要: 一、写在开头 今天和一个之前研二的学妹聊天,聊及她上周面试字节的情况,着实感受到了Java后端现在找工作的压力啊,记得在18,19年的时候,研究生计算机专业的学生,背背八股文找个Java开发工作毫无问题,但现在即便你是应届生,问的考题也非常的深入和细节了,只会背八股,没有一定的代码量和项目积累,根本 阅读全文
posted @ 2024-05-27 08:38 JavaBuild 阅读(946) 评论(2) 推荐(0) 编辑
  2024年5月25日
摘要: 一、写在开头 依稀记得多年以前的一场面试中,面试官从Java并发编程问到了锁,从锁问到了原子性,从原子性问到了Atomic类库(对着JUC包进行了刨根问底),从Atomic问到了CAS算法,紧接着又有追问到了底层的Unsafe类,当问到Unsafe类时,我就知道这场面试废了,这似乎把祖坟都能给问冒烟 阅读全文
posted @ 2024-05-25 07:41 JavaBuild 阅读(742) 评论(1) 推荐(5) 编辑
  2024年5月21日
摘要: 一、写在开头 在前面的博文中我们学习了volatile关键字,知道了它可以保证有序性和可见性,但无法保障原子性,结局原子性问题推荐使用synchronized、Lock或者AtomicInteger;我们还学习过CAS算法,在那篇博文中我们同样也提及atomic。那么今天,我们就来好好学一学Atom 阅读全文
posted @ 2024-05-21 08:08 JavaBuild 阅读(218) 评论(0) 推荐(0) 编辑
  2024年5月19日
摘要: 一、写在开头 我们在学习集合或者说容器的时候了解到,很多集合并非线程安全的,在并发场景下,为了保障数据的安全性,诞生了并发容器,广为人知的有ConcurrentHashMap、ConcurrentLinkedQueue、BlockingQueue等,那你们知道ArrayList也有自己对应的并发容器 阅读全文
posted @ 2024-05-19 16:42 JavaBuild 阅读(287) 评论(0) 推荐(0) 编辑
  2024年5月18日
摘要: 一、写在开头 昨晚收到一个粉丝在私信的留言如下: build哥,今天参加了网易的提前批,可以说是一次惨痛的面试体验🤣,直接被虚拟线程问倒了,无论是在校学习的时候还是在公司实习的时候,都使用的是Java8更多,或者Java11,比较点子背的是面试我的这一个面试官,他们团队刚好在做Java21的切换, 阅读全文
posted @ 2024-05-18 20:26 JavaBuild 阅读(416) 评论(0) 推荐(2) 编辑
  2024年5月12日
摘要: 一、写在开头 我们在上一篇文章中提到了通过EasyExcel处理Mysql百万数据的导入功能(一键看原文),当时我们经过测试数据的反复测验,100万条放在excel中的数据,4个字段的情况下,导入数据库,平均耗时500秒,这对于我们来说肯定难以接受,今天我们就来做一次性能优化。 二、性能瓶颈分析 一 阅读全文
posted @ 2024-05-12 17:27 JavaBuild 阅读(3196) 评论(5) 推荐(0) 编辑