
后端
SunnyZhang0911
这个作者很懒,什么都没留下…
展开
-
Java序列化和transient的使用
存档的过程中就是将内存中的数据存储到电脑的硬盘中,硬盘的数据在关机断电后是不会丢失的(硬盘损坏数据丢失先不考虑)。创建的对象都是保存在内存中的,大家都知道内存的数据是短暂保留在缓存的,断电之后是会消失的,但是游戏经过手动存档之后就算你关机几天了,再次进入游戏读取存档,你会发现之前在游戏中创建的角色和装备都还在呢,这就很奇怪了,明明内存的数据断电就消失了,这是为什么?如果频繁的在网络中传输的数据那就需要数据越小越好,小的数据传输快,也不占带宽,也能整体提升系统的性能,因此序列化生成的体积就很关键了。原创 2023-02-08 16:48:46 · 613 阅读 · 0 评论 -
Java遍历集合元素并修改
增强for循环本质上是使用迭代器进行遍历,迭代器在初始化时会使用expectedModCount记录当时的modCount,遍历时会检查expectedModCount是否和modCount相同,如果不同就会抛出ConcurrentModificationException异常。在第一次删除后,集合发生了改变,删除位置之后的所有元素都向前挪动了一个位置,删除位置上的元素由下一位置上的元素替代。解决办法是在迭代器中删除或添加元素时,使用迭代器提供的删除或添加方法,不要使用集合提供的删除或添加方法。原创 2022-11-24 11:06:23 · 9029 阅读 · 0 评论 -
局部代码块、构造代码块、静态代码块
在Java中,使用{}括起来的代码被称为代码块,根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程)。用于当多个构造方法重载时,将这些方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行。在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且值执行一次。限定变量生命周期,及早释放,提高内存利用率。静态代码块 在类中方法外出现,加了static修饰。原创 2022-09-26 10:32:21 · 227 阅读 · 0 评论 -
Java面试题:isAssignableFrom与instanceof的区别
Class对象的isAssignableFrom方法,用native关键字描述,是一个底层方法,存在于本地方法栈,用来判断当前Class 对象所表示的类或接口与指定的 Class 参数所表示的类或接口是否相同,或是否是其接口或者父类。这个比较的是实例,如果要判断的是一个接口或者抽象类呢?下面就用isAssignableFrom判断一个接口或者抽象类是否和某个接口或者类相同,或是否是其接口或者父类。先说instanceof,这个用的比较多,用来判断一个实例是否是某个接口或者类的实例,判断的是运行时候的实例。.原创 2022-08-16 21:04:55 · 210 阅读 · 0 评论 -
scheduleAtFixedRate 与 scheduleWithFixedDelay 的区别和实例
通过ScheduledExecutorService执行的周期任务,如果任务执行过程中抛出了异常,那么过ScheduledExecutorService就会停止执行任务,且也不会再周期地执行该任务了。所以你如果想保住任务都一直被周期执行,那么catch一切可能的异常。scheduleAtFixedRate ,是以上一个任务开始的时间计时,period时间过去后,检测上一个任务是否执行完毕,如果上一个任务执行完毕,则当前任务立即执行,如果上一个任务没有执行完毕,则需要等上一个任务执行完毕后立即执行。...原创 2022-08-16 20:51:26 · 501 阅读 · 0 评论 -
Java集合中contains方法的效率对比
Java集合中contains方法的效率原创 2022-08-06 15:47:10 · 3111 阅读 · 0 评论 -
Java^运算符用法
按位异或运算符(^)是二元运算符,要化为二进制才能进行计算,在两个操作数中,如果两个相应的位相同,则运算结果为0,否则1;例如:int a=15;int b=a^8;运算结果为:a=15;b=7;a(二进制)=1111;8(二进制)=1000;1111^1000=0111;er 0111=7(十进制);在两个布尔变量里if(boolean a ^ boolean b)就是 当a和b同真或同假时为真,不然为假。......原创 2022-02-22 21:13:07 · 1784 阅读 · 2 评论 -
Java中“::”的含义和用法
在JAVA 8 中,可以通过 “::” 关键字来访问类的构造方法,对象方法,静态方法。一般有下面几种用法。访问静态方法 // 使用方法:类名::静态方法名, 如 Integer::parseInt访问对象方法 // 使用方法:实例对象::实例方法,如 String::substring访问构造方法 // 使用方法:类名::new, 如 User::new下面看几个例子:List list = Arrays.asList(“1”,“2”,“3”);List collect = list.strea原创 2022-03-28 20:35:54 · 22626 阅读 · 0 评论 -
JavaIO框架的设计思想
JavaIO框架的设计思想:可以沿着这条路想一想:1,学IO流之前,我们写的程序,都是在内存里自己跟自己玩。比如,你声明个变量,创建个数组,创建个集合,写一个排序算法,模拟一个链表,使用一些常用API,现在回想一下,是不是在只是自己在内存里玩一玩?计算机组成包括运算器,控制器,存储器,输入设备,输出设备。那么你前面的工作,仅仅够你的程序和内存以及CPU打打交道,如果你需要操作外部设备呢?比如键盘,显示器,再比如,最常见的外设:硬盘?甚至未来世界里的每家每户都有的机器人,“如何让你的程序和机器人进行交互呢?”转载 2022-03-11 15:34:10 · 196 阅读 · 0 评论