![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序员
文章平均质量分 81
feel369
这个作者很懒,什么都没留下…
展开
-
『2021年终总结』10年深飘,3辆车,3套房
【2021年总结】毫无疑问,对于我来说,2021年最大的收获是开启了自己写技术文的人生体验。并且一发不可收拾,因为通过写文章,不仅自己的技术得到了增长和巩固,并且能成为知识传播的一环,能帮助到别人,这是一件极具意义的事情。2022年,我依然会坚持输出更多优质的技术文,让我们拭目以待。【关于标题】取这样的标题初衷并非标题党博眼球,也并非炫耀,而是想用最真实的收获来道出一名普通人、一个无名小卒也是可以通过自身的奋斗过上更好的生活。【关于我】12年,从一个不知名的...转载 2021-12-25 19:50:41 · 207 阅读 · 0 评论 -
八大基础排序总结
八大排序总结2.1冒泡排序思路: 俩俩交换,大的放在后面,第一次排序后最大值已在数组末尾。 因为俩俩交换,需要n-1趟排序,比如10个数,需要9趟排序 代码实现要点: 两个for循环,外层循环控制排序的趟数,内层循环控制比较的次数 每趟过后,比较的次数都应该要减1 优化:如果一趟排序后也没有交换位置,那么该数组已有序~ //外层循环是排序的趟数 for (int i = 0; i < arrays.length -1 ; i...转载 2021-12-24 17:01:28 · 257 阅读 · 0 评论 -
java序列化,看这篇就够了
一、序列化的含义、意义及使用场景 序列化:将对象写入到IO流中 反序列化:从IO流中恢复对象 意义:序列化机制允许将实现序列化的Java对象转换位字节序列,这些字节序列可以保存在磁盘上,或通过网络传输,以达到以后恢复成原来的对象。序列化机制使得对象可以脱离程序的运行而独立存在。 使用场景:所有可在网络上传输的对象都必须是可序列化的,比如RMI(remote method invoke,即远程方法调用),传入的参数或返回的对象都是可序列化的,否则会出错;所有需要保存到磁盘.转载 2021-12-24 16:12:40 · 528 阅读 · 0 评论 -
三顾ArrayList
ArrayList部分一共五篇文章了,并且引入了时间复杂度来分析,强烈建议大家一定要按顺序阅读,相关文章分别是:1、《ArrayList初始化 - Java那些事儿》2、《ArrayList底层数组扩容原理 - Java那些事儿》3、《时间复杂度 - Java那些事儿专栏》4、本文第三次强调,ArrayLIst是一个普通的类。好,现在我们来讨论一下数组的删除,我们知道数组一但在堆内存中创建出来,数组长度是不可变的,看以下源码:添加10个用户比如我们要把“周...转载 2021-12-23 18:02:33 · 220 阅读 · 0 评论 -
学会 Java 数据结构,想不飘都难
今天我们来学一下数据结构方面的知识,对扎实 Java 的基本功非常有用,学会了就会有一种自带大佬的感觉,嘿嘿。数据结构,也就是 Data Structure,是一种存储数据的结构体,数据与数据之间存在着一定的关系,这样的关系有数据的逻辑关系、数据的存储关系和数据的运算关系。在 Java 中,数据结构一般可以分为两大类:线性数据结构和非线性数据结构。哈哈,这个非字很有灵魂吧?先来说线性数据结构吧。1)数组一眼看上去就知道的,像String []、int []这种;还有需要看两眼...转载 2021-12-21 17:09:58 · 145 阅读 · 0 评论 -
我带的实习生,转正了
我最近带了一个实习生。其实说最近,也都整整三个月了,已经在走转正流程了。还记得他来的时候,为了和他套个近乎,有一天聊完正事之后,和他拉了拉家常。然后我说:在我们组里面,不必拘谨,大家在平时沟通的时候也没有上下级的关系,敞开心扉,不要有太多顾虑。我们的氛围是很 open 的,多多沟通。其实你别看我长的老,我年龄也不大,我 92年的。对了,你哪一年的?他答:2000年。那一刻其实有冲击到我。因为我惊奇的发现,原来 00 后也慢慢的走入职场了。他们从我们 90 后手中接下“垮掉..转载 2021-12-19 20:46:24 · 121 阅读 · 0 评论 -
这样使用 IDEA ,效率提升10倍 | IDEA 高效使用指南
我利用昨天晚上和早起的这会时间总结了这篇IDEA 高效使用教程。希望对大家有帮助!本文分为下面 4 部分内容: IDEA 高效设置指南 必备的一些插件推荐 主题优化 IDEA 源码阅读技巧 01 高效设置我们先来讲讲有哪些设置调整之后 IDEA 会更好用。先说明一点:这里只是根据我个人喜好和习惯的建议,IDEA 的默认配置已经很好用了,具体要不要修改还是要看个人喜好和习惯了。调整窗口字体显示大小巨好用的一个功能!强烈安利!勾选上 Prefere..转载 2021-12-19 16:44:05 · 1140 阅读 · 0 评论 -
Java后端学习路线
前言自学/学习路线这样的一期我想写很久了,因为一直想写的全一点硬核一点所以拖到了现在,我相信这一期对不管是还在学校还是已经工作的同学都有所帮助,不管是前端还是后端我都墙裂建议大家看完,因为这样会让你对你所工作的互联网领域相关技术栈有个初步的了解。我毕业后主要接触的都是电商领域,所以这一期我把目前所了解的技术栈加上之前电商系统的经验臆想了一个完整的电商系统,大家会看到很多熟悉的技术栈我相信也会看到自己未接触过的技术栈,我也会对每个技术栈的主要技术点提一下,至于细节就只能大家在我历史和未来的文章去看.转载 2021-12-19 13:40:16 · 317 阅读 · 0 评论 -
再见了,空指针异常(NullPointerException) ,看看有哪些好的实践可以避开它
1. 快速介绍空指针异常,只有大家写过业务系统,一定对它不陌生。它是一个运行时错误,一般而言常见逻辑不严谨、懒散的代码风格导致。它的原因理解起来很简单,但是要避免它却不是一件容易的事。下面我记录了一些我认为比较好的实践,这些实践帮助我避免空指针异常的同时,也间接地提升了我的代码质量和工作效率。这些内容一部分来自我在 Kindle 上读过的书籍,一部分来自 StackOverflow 的建议和我自己实践的感受,这里记录下来,希望可以给大家带来一些启发。2. 问题定义假设一个这样的业务系统:一个任务转载 2021-12-17 15:41:43 · 447 阅读 · 0 评论 -
都什么年代了你还在用 Date
前言上篇文章搞清楚了时区,这篇文章就主要来谈一谈 Java 中处理日期时间用什么 API 比较好。我本来不准备写这篇文章的,因为我觉得 Java17 都特么出来了,大家对 Java8 提供的时间日期 API 都很熟悉了。但是经过我调研,很多中小公司还在用老版本的Date来处理时间日期,视 Java8 提供的时间日期 API 于无物,所以还是想来推荐一下新一代的时间日期 API,希望对大家有帮助。传统的 Date老版本的Date相信大家都很熟悉了,这里就简单介绍几个点可观不可触的时区...转载 2021-12-17 15:26:05 · 107 阅读 · 0 评论 -
彻底理解synchronized
1. synchronized简介在学习知识前,我们先来看一个现象:public class SynchronizedDemo implements Runnable { private static int count = 0; public static void main(String[] args) { for (int i = 0; i < 10; i++) { Thread thread = new Thread(new转载 2021-12-16 18:23:28 · 133 阅读 · 0 评论 -
漫画:什么是红黑树?
————————————————————————二叉查找树(BST)具备什么特性呢?1.左子树上所有结点的值均小于或等于它的根结点的值。2.右子树上所有结点的值均大于或等于它的根结点的值。3.左、右子树也分别为二叉排序树。下图中这棵树,就是一颗典型的二叉查找树:1.查看根节...转载 2021-12-16 18:08:15 · 82 阅读 · 0 评论 -
漫画:什么是中台?
没有中台的时代在传统IT企业,项目的物理结构是什么样的呢?无论项目内部的如何复杂,都可分为“前台”和“后台”这两部分。什么是前台?首先,这里所说的“前台”和“前端”并不是一回事。所谓前台即包括各种和用户直接交互的界面,比如web页面,手机app;也包括服务端各种实时响应用户请求的业务逻辑,比如商品查询、订单系统等等。什么是后台?后台并不直接面向用户,而是面向运营人员的配置管理系统,比如商品管理、物流管理、结...转载 2021-12-16 17:44:07 · 82 阅读 · 0 评论 -
灵魂拷问:Java对象的内存分配过程是如何保证线程安全的?
JVM内存结构,是很重要的知识,相信每一个静心准备过面试的程序员都可以清楚的把堆、栈、方法区等介绍的比较清楚。上图,是一张在作者根据《Java虚拟机规范(Java SE 8)》中描述的JVM运行时内存区域结构画的。很多人都知道Java对象是在堆内存中分配空间的(JIT优化除外),也知道内存分配过程中是线程安全的,那么虚拟机到底是如何保证线程安全的呢?本文就来简单介绍一下。Java对象的内存分配我们知道,Java是一门面向对象的语言,我们在Java中使用的对象都需要被创建出来.转载 2021-12-15 17:59:32 · 158 阅读 · 0 评论 -
我说我精通字符串,面试官竟燃问我Java中的String有没有长度限制
String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西容易被忽略的。就如本文我们要讨论的问题:Java中的String有没有长度限制?这个问题要分两个阶段看,分别是编译期和运行期。不同的时期限制不一样。编译期首先,我们先来合理的推断一下,当我们在代码中使用String s = “”;的形式来定义String对象的时候,””中字符的个数有没有限制呢?既然是合理的推断,那就要要足够的依据,所以我们可以从转载 2021-12-15 17:45:23 · 77 阅读 · 0 评论 -
一个小的技术细节
在学习过之前的《单例》之后,相信大家一定对单例有了很深的理解,对于双重校验锁的单例实现大家一定都不陌生。不知道大家有没有关注过一个细节,那就是在双重校验锁中的getInstance方法中,定义了一个局部变量来接收Singleton的单例对象。代码实现如下:public class Singleton { private static volatile Singleton instance=null; private Singleton() { } public s...转载 2021-12-15 17:26:48 · 98 阅读 · 0 评论 -
为啥HashMap的默认容量是16?
集合是Java开发日常开发中经常会使用到的,而作为一种典型的K-V结构的数据结构,HashMap对于Java开发者一定不陌生。在日常开发中,我们经常会像如下方式以下创建一个HashMap:Map<String, String> map = new HashMap<String, String>();但是,大家有没有想过,上面的代码中,我们并没有给HashMap指定容量,那么,这时候一个新创建的HashMap的默认容量是多少呢?为什么呢?本文就来分析下这个问题。什转载 2021-12-15 17:15:05 · 2499 阅读 · 0 评论 -
想理解Java的IO,不要从操作系统开始说起的都是耍流氓…
前言在JDK1.4之前的IO类都是基于阻塞的IO(可以从InputStream.read()方法实现中看到由synchronized修饰的代码块),发展到JDK1.4之后NIO提供了selector多路复用的机制以及channel和buffer,再到JDK1.7的NIO升级提供了真正的异步api……Java网络IO涵盖的知识体系很广泛,本文将简单介绍Java网络IO的相关知识:(若文章有不正之处,或难以理解的地方,请多多谅解,欢迎指正)1. 从操作系统开始为了保护操作系统的安全,会将内存转载 2021-12-14 16:35:27 · 98 阅读 · 0 评论 -
从String中移除空白字符的多种方式
字符串,是Java中最常用的一个数据类型了。我们在日常开发时候会经常使用字符串做很多的操作。比如字符串的拼接、截断、替换等。这一篇文章,我们介绍一个比较常见又容易被忽略的一个操作,那就是移除字符串中的空格。其实,在Java中从字符串中删除空格有很多不同的方法,如trim,replaceAll等。但是,在Java 11添加了一些新的功能,如strip、stripLeading、stripTrailing等。大多数时候,我们只是使用trim方法来删除多余的空格。但是好像很多人并没有去思考过,是否有.转载 2021-12-14 16:23:11 · 1313 阅读 · 0 评论 -
教你使用1行代码在Java中实现字符串的逆序
字符串逆序,这是非常普遍的一道算法面试题,相信很多刷过算法题的朋友都一定对这个问题并不陌生。这个问题有很多衍生问题,他的实现方式也有很多。今天,就来教大家一个代码行数最好的实现方式。那就是使用递归的方式,用1行代码实现字符串逆序。代码如下:public class MyClass { public static void main(String args[]) { System.out.println(reverseString("Hollis is a Coder"...转载 2021-12-14 16:11:48 · 209 阅读 · 0 评论 -
我竟燃被”双亲委派”给虐了
最近一段时间,我在面试的过程中,很喜欢问双亲委派的一些问题,因为我发现这个问题真的可以帮助我全方位的了解一个候选人。记得前几天一次面试过程中,我和一位候选人聊到了JVM的类加载机制的问题,他谈到了双亲委派,并且很自信的给我讲了一下他对于双亲委派的理解。因为难得碰到一个对着块知识了解的比较多的候选人,于是我们展开了”300回合”的交锋,当问完这些问题的之后,大概半个小时已经过去了。最后,这个后续人和我说:”我万万没想到,我一个工作7年的技术经理,竟然被双亲委派给虐了!!!“先来回顾下我都问了他转载 2021-12-14 16:02:30 · 109 阅读 · 0 评论 -
到底谁才是垃圾?
作为 Java 程序员,我们是幸福的,因为我们不需要管理系统中的垃圾。我们只需要将重点放在业务中就可以了。至于垃圾什么的就交给天生的垃圾收集器就可以了。那既然都这么说了,我们干嘛还要花心思来学习这些呢?我们学习这些肯定是为了更好的理解我们系统的底层运行原理啊,这样才能有针对性的写出 “更适合” JVM的代码。才能让我们的代码更健壮和安全,更关键的是能根据 JVM 的特性有针对性的进行调节和优化,最终写出执行效率高的代码。到底谁是垃圾?什么样的对象可以称为垃圾对象?换句话说:在垃圾收集器工作的时候转载 2021-12-14 15:36:24 · 68 阅读 · 0 评论 -
单例与序列化的那些事儿
本文将通过实例+阅读Java源码的方式介绍序列化是如何破坏单例模式的,以及如何避免序列化对单例的破坏。单例模式,是设计模式中最简单的一种。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。关于单例模式的使用方式,可以阅读单例模式的七种写法但是,单例模式真的能够实现实例的唯一性吗?答案是否定的,很多人都知道使用反射可以破坏单例模式,除了反射以外,使用序列化与反序列化也.转载 2021-12-12 17:06:42 · 140 阅读 · 0 评论 -
单例模式的七种写法
写在前面:单例模式,是设计模式中最简单的一种,但是,他却有很多的东西需要注意,性能、线程安全等。这篇文章是我转载的,转载之后我仔细研究了一下并加了备注和相关知识链接(鼠标悬浮在带链接的文字上就可以看到我的注释,例如:鼠标悬浮在这)。第一种(懒汉,线程不安全):public class Singleton { private static Singleton instance; private Singleton (){} public static syn..转载 2021-12-12 16:47:02 · 149 阅读 · 0 评论 -
设计模式(三)——JDK中的那些单例
在设计模式(二)——单例模式中介绍了单例的概念、用途、实现方式、如何防止被序列化破坏等。单例模式在JDK源码中也有多处应用。本文通过JDK(java 8)中几个典型的单例的使用来复习一下单例模式,并且通过这种实际应用来深入理解一下单例的用法与实现方式。java.lang.RuntimeRuntime类封装了Java运行时的环境。每一个java程序实际上都是启动了一个JVM进程,那么每个JVM进程都是对应这一个Runtime实例,此实例是由JVM为其实例化的。每个 Java 应用程序都有一个 Runt转载 2021-12-12 16:17:20 · 499 阅读 · 0 评论 -
设计模式(二)——单例模式
设计模式(一)——设计模式概述中简单介绍了设计模式以及各种设计模式的基本概念,本文主要介绍单例设计模式。包括单例的概念、用途、实现方式、如何防止被序列化破坏等。概念单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式。在GOF 书中给出的定义为:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式一般体现在类声明中,单例的类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直.转载 2021-12-12 16:02:54 · 84 阅读 · 0 评论 -
设计模式(一)——设计模式概述
在软件工程中,设计模式(design pattern)是对软件设计中普遍存在的各种问题,所提出的解决方案。设计模式并不是固定的一套代码,而是针对某一特定问题的具体解决思路与方案。可以认为是一种最佳实践,因为他是无数软件开发人员经过长时间的实践总结出来的。提到设计模式不得不提《设计模式:可复用面向对象软件的基础》(Design Patterns – Elements of Reusable Object-Oriented Software) 一书。这本书由著名的四人帮——GoF(Gang of Four)转载 2021-12-12 15:39:04 · 156 阅读 · 0 评论 -
JAVA基础学习-操作符学习总结
4.1 算数操作符 基本算数操作符: + - * / 练习求和 使用Scanner从控制台获取两个数字,然后计算这两个数字的和。public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); ...转载 2021-12-10 17:57:45 · 408 阅读 · 0 评论 -
JAVA基础学习-变量
3.1 什么是变量 什么是变量 变量的定义是:用来命名一个数据的标识符;1949 这是一个数字,代表某年;如果要命名这个数字,在java里就会写成:public class HelloWorld { public static void main(String[] args) { int year = 1949; }}3.2 基本变量类型一个变量的类型,决定了该变量可以包含什么样的值。Java中有八种基本类型,都是Java语言预先定义好的,并且是关键转载 2021-12-10 16:42:00 · 339 阅读 · 0 评论 -
JAVA基础学习-类和对象学习笔记
2.1 类和对象本章节会引入面向对象的基本概念 (但是不会深入展开,仅仅是引入深入的学习会在后续的类和对象以及接口与继承中展开)。相信你肯定玩过DOTA或者LOL,没玩过,也一定听说过身边有很多的朋友在玩这款游戏的。假设,我们要设计一个LOL这样的游戏,使用面向对象的思想来设计,应该怎么做? 设计英雄这个类 LOL有很多英雄,比如盲僧,团战可以输,提莫必须死,盖伦,琴女。所有这些英雄,都有一些共同的状态,比如,他们都有名字,hp,护甲,移动速度等等。这样我们就可以设计一种东西,叫做类.转载 2021-12-10 16:04:49 · 243 阅读 · 0 评论 -
JAVA基础学习-接口与继承
8.1 接口在设计LOL的时候,进攻类英雄有两种,一种是进行物理系攻击,一种是进行魔法系攻击这时候,就可以使用接口来实现这个效果。接口就像是一种约定,我们约定某些英雄是物理系英雄,那么他们就一定能够进行物理攻击。 物理攻击接口 创建一个接口 AD ,声明一个方法 physicAttack 物理攻击,但是没有方法体,是一个“空”方法package charactor; public interface AD { //物理伤害 public void p...转载 2021-12-10 15:45:40 · 586 阅读 · 0 评论 -
Java-两个较大的List快速取交集、差集
工作中经常遇到需要取两个集合之间的交集、差集情况,但是普通的retainAll()和removeAll()无法满足数据量大的情况,由此就自己尝试运用其他的方法解决。注:如果数据量小的情况下,还是使用retainAll()和removeAll()方便1.假使不存在重复数据,如果存在重复数据,也会被覆盖掉,实际情况中,重复数据也无意义。2.取交集或者差集时存在主数据和从数据的关系,可提前判断一下那个集合数据量更多,来决定主从数据,或者经过两轮比较,或者经过两轮比较,获取两个结果集。下面例举中,li转载 2021-12-10 14:45:28 · 2373 阅读 · 0 评论 -
三年写BUG得出的找BUG经验
前言零零碎碎从开始写代码已经整整三年多了,别人说只要写十万行代码就能在大学毕业时找到一份好工作,像我种写了超过十万行BUG的不知道会不会有大厂愿意雇用我去竟对上班。愿意写bug的好处就是也开始总结了一些找bug的经验分享给大家找 BUG 第一式找BUG首先要明确BUG出现的原因,第一种方法是从整个页面的加载过程中去先粗略定位,这种方法是从最直观的地方去找出你的BUG。//java学习交流:737251827 进入可领取学习资源及对十年开发经验大佬提问,免费解答!在浏览器中摁F12转载 2021-12-09 13:45:38 · 164 阅读 · 0 评论 -
实战, 聊聊工作中使用了哪些设计模式
前言平时我们写代码呢,多数情况都是流水线式写代码,基本就可以实现业务逻辑了。如何在写代码中找到乐趣呢,我觉得,最好的方式就是:使用设计模式优化自己的业务代码。今天跟大家聊聊日常工作中,我都使用过哪些设计模式。1.策略模式1.1 业务场景假设有这样的业务场景,大数据系统把文件推送过来,根据不同类型采取不同的解析方式。多数的小伙伴就会写出以下的代码:if(type=="A"){ //按照A格式解析 }else if(type=="B"){ //按B格式解析...转载 2021-12-08 17:38:08 · 178 阅读 · 0 评论 -
理解Java的强引用、软引用、弱引用和虚引用
前言Java执行GC判断对象是否存活有两种方式其中一种是引用计数。引用计数:Java堆中每一个对象都有一个引用计数属性,引用每新增1次计数加1,引用每释放1次计数减1。在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于(reachable)可达状态,程序才能使用它。从JDK 1.2版本开始,对象的引用被划分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。.转载 2021-12-08 17:08:12 · 150 阅读 · 0 评论 -
不要再死记硬背Java的类加载啦
作为一个程序员,面试的时候都绕不过JVM,可以说这是我们永远的痛。是不是感觉每次面试的时候,都要重新背一下,不然面试会被虐惨。那么问题就来了,为什么每次面试都要背?``为什么背完过了断时间就忘了?除了记忆不深刻,还有一个重要原因是没理解,不理解的东西当然记不久。所以从这篇开始,我们要开始学习JVM,争取做到理解记忆,将知识点串起来。虽然这块知识很无聊,很枯燥,但是我争取写的简单,有趣点,我们一起加油,好吗?一、类加载机制1.1完整流程(简单版)从上图中我们可...转载 2021-12-07 16:57:39 · 129 阅读 · 0 评论 -
终于有人把Java内存区域说清楚了(不是内存模型,不要再混淆了)
不要再把Java内存区域和Java内存模型混淆,再问就自闭啦。????小橙出品 必属精品。先赞后看 养成习惯 。上次我们讲了JVM的类加载机制,主要涉及了双亲委派机制,如何破坏双亲委派机制,不明白的小伙伴可以移步上篇不要再死记硬背Java的类加载啦。网上有很多关于Java区域和内存模型的文章,但是很多人读完之后还是搞不清楚,主要是因为大家把这两个混为一谈,也不关心JDK版本。所以概念一多,非常容易混淆。所以下面将重点说明Java内存区域,主要涉及运行时的几大区域划分,每个区域的职责.转载 2021-12-07 16:30:59 · 145 阅读 · 0 评论 -
真的懂Java的String吗?
1.String的特性1.1不变性我们常常听人说,HashMap 的 key 建议使用不可变类,比如说 String 这种不可变类。这里说不可变指的是类值一旦被初始化,就不能再被改变了,如果被修改,将会是新的类,我们写个demo 来演示一下。public class test { public static void main(String[] args){ String str="hello"; str=str+"world"; }}从代...转载 2021-12-07 16:06:33 · 88 阅读 · 0 评论 -
看一遍就理解:IO模型详解
前言什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll跟IO模型有什么关系?有几种经典IO模型呢?BIO、NIO、AIO到底有什么区别的?如果这些问题,你都能很好答上的话,那恭喜你,你对IO的掌握已经很棒啦!如果你对这些问题模棱两可的话,那也没关系,看完这篇文章,就理解啦!什么是IO呢?IO,英文全称是Input/Output,翻译过来就是输入/输出。平时我们听得挺多,就是什么磁盘IO,网络IO。那IO到底是什么呢?是不是有种懵懵懂.转载 2021-12-07 13:12:28 · 207 阅读 · 0 评论 -
Java线程(一):线程安全与不安全
作为一个Java web开发人员,很少也不需要去处理线程,因为服务器已经帮我们处理好了。记得大一刚学Java的时候,老师带着我们做了一个局域网聊天室,用到了AWT、Socket、多线程、I/O,编写的客户端和服务器,当时做出来很兴奋,回学校给同学们演示,感觉自己好NB,呵呵,扯远了。上次在百度开发者大会上看到一个提示语,自己写的代码,6个月不看也是别人的代码,自己学的知识也同样如此,学完的知识如果不使用或者不常常回顾,那么还不是自己的知识。大学零零散散搞了不到四年的Java,我相信很多人都跟我一样,Java转载 2021-12-05 17:29:27 · 193 阅读 · 0 评论