Fork me on GitHub

随笔分类 -  java

上一页 1 2 3 4 5 6 7 8 9 10 ··· 16 下一页
java相关教程
摘要:简介 序列化是java中一个非常常用又会被人忽视的功能,我们将对象写入文件需要序列化,同时,对象如果想要在网络上传输也需要进行序列化。 序列化的目的就是保证对象可以正确的传输,那么我们在序列化的过程中需要注意些什么问题呢? 一起来看看吧。 序列化简介 如果一个对象要想实现序列化,只需要实现Seria 阅读全文
posted @ 2020-11-01 10:29 flydean 阅读(714) 评论(0) 推荐(1) 编辑
摘要:简介 对于文件的IO操作应该是我们经常会使用到的,因为文件的复杂性,我们在使用File操作的时候也有很多需要注意的地方,下面我一起来看看吧。 创建文件的时候指定合适的权限 不管是在windows还是linux,文件都有权限控制的概念,我们可以设置文件的owner,还有文件的permission,如果 阅读全文
posted @ 2020-10-27 10:47 flydean 阅读(650) 评论(0) 推荐(0) 编辑
摘要:1. 前言 集合是用来存储多个数据的,除了基本类型之外,集合应该是java中最最常用的类型了。java中的集合类型一般都集中在java.util包和java.util.concurrent包中。 其中util包中的集合类是基础的集合类,而concurrent包中的集合类是为并发特别准备的集合类。 集 阅读全文
posted @ 2020-10-26 10:02 flydean 阅读(752) 评论(2) 推荐(3) 编辑
摘要:简介 如果我们在多线程中引入了共享变量,那么我们就需要考虑一下多线程下线程安全的问题了。那么我们在编写代码的过程中,需要注意哪些线程安全的问题呢? 一起来看看吧。 注意线程安全方法的重写 大家都做过方法重写,我们知道方法重写是不会检查方法修饰符的,也就是说,我们可以将一个synchronized的方 阅读全文
posted @ 2020-10-23 09:24 flydean 阅读(583) 评论(1) 推荐(0) 编辑
摘要:简介 在java中,除了单个使用Thread之外,我们还会使用到ThreadPool来构建线程池,那么在使用线程池的过程中需要注意哪些事情呢? 一起来看看吧。 java自带的线程池 java提供了一个非常好用的工具类Executors,通过Executors我们可以非常方便的创建出一系列的线程池: 阅读全文
posted @ 2020-10-20 09:42 flydean 阅读(505) 评论(0) 推荐(0) 编辑
摘要:简介 java中多线程的开发中少不了使用Thread,我们在使用Thread中提供的API过程中,应该注意些什么规则呢? 一起来看一看吧。 start一个Thread Thread中有两个方法,一个是start方法,一个是run方法,两个都可以调用,那么两个有什么区别呢? 先看一下start方法: 阅读全文
posted @ 2020-10-19 09:17 flydean 阅读(421) 评论(0) 推荐(1) 编辑
摘要:简介 双重检测锁定模式是一种设计模式,我们通过首次检测锁定条件而不是实际获得锁从而减少获取锁的开销。 双重检查锁定模式用法通常用于实现执行延迟初始化的单例工厂模式。延迟初始化推迟了成员字段或成员字段引用的对象的构造,直到实际需要才真正的创建。 但是我们需要非常小心的使用双重检测模式,以避免发送错误。 阅读全文
posted @ 2020-10-14 08:58 flydean 阅读(378) 评论(0) 推荐(0) 编辑
摘要:简介 注入问题是安全中一个非常常见的问题,今天我们来探讨一下java中的SQL注入和XML注入的防范。 SQL注入 什么是SQL注入呢? SQL注入的意思是,用户输入了某些参数,最终导致SQL的执行偏离了程序设计者的本意,从而导致越权或者其他类型的错误。 也就是说因为用户输入的原因,导致SQL的涵义 阅读全文
posted @ 2020-10-12 09:05 flydean 阅读(653) 评论(0) 推荐(0) 编辑
摘要:简介 在java多线程环境中,lock和同步是我们一定会使用到的功能。那么在java中编写lock和同步相关的代码之后,需要注意哪些问题呢?一起来看看吧。 使用private final object来作为lock对象 一般来说我们在做多线程共享对象的时候就需要进行同步。java中有两种同步方式,第 阅读全文
posted @ 2020-10-10 08:55 flydean 阅读(997) 评论(0) 推荐(0) 编辑
摘要:简介 java程序的逻辑是由一个个的方法组成的,而在编写方法的过程中,我们也需要遵守一定的安全规则,比如方法的参数进行校验,不要在assert中添加业务逻辑,不要使用废弃或者过期的方法,做安全检查的方法一定要设置为private等。 今天我们再来深入的探讨一下,java方法的编写过程中还有哪些要注意 阅读全文
posted @ 2020-10-08 09:04 flydean 阅读(339) 评论(0) 推荐(0) 编辑
摘要:简介 java中为了保证共享数据的安全性,我们引入了锁的机制。有了锁就有可能产生死锁。 死锁的原因就是多个线程锁住了对方所需要的资源,然后现有的资源又没有释放,从而导致循环等待的情况。 通常来说如果不同的线程对加锁和释放锁的顺序不一致的话,就很有可能产生死锁。 不同的加锁顺序 我们来看一个不同加锁顺 阅读全文
posted @ 2020-10-01 08:41 flydean 阅读(401) 评论(0) 推荐(0) 编辑
摘要:简介 异常是java程序员无法避免的一个话题,我们会有JVM自己的异常也有应用程序的异常,对于不同的异常,我们的处理原则是不是一样的呢? 一起来看看吧。 异常简介 先上个图,看一下常见的几个异常类型。 所有的异常都来自于Throwable。Throwable有两个子类,Error和Exception 阅读全文
posted @ 2020-09-29 09:14 flydean 阅读(995) 评论(0) 推荐(0) 编辑
摘要:简介 一般来说class中如果包含了私有的或者敏感的数据的时候是不允许被拷贝的。 如果一个class不想被拷贝,我们是不是不提供拷贝的方法就能保证class的安全了呢? 一起来看看吧。 一个简单的SensitiveObject 假如我们有下面的一个SensitiveObject,它的作用就是存储一个 阅读全文
posted @ 2020-09-28 09:54 flydean 阅读(361) 评论(0) 推荐(0) 编辑
摘要:简介 java类中会定义很多变量,有类变量也有实例变量,这些变量在访问的过程中,会遇到一些可见性和原子性的问题。这里我们来详细了解一下怎么避免这些问题。 不可变对象的可见性 不可变对象就是初始化之后不能够被修改的对象,那么是不是类中引入了不可变对象,所有对不可变对象的修改都立马对所有线程可见呢? 实 阅读全文
posted @ 2020-09-25 10:54 flydean 阅读(526) 评论(0) 推荐(0) 编辑
摘要:简介 为了保证java程序的安全,任何外部用户的输入我们都认为是可能有恶意攻击意图,我们需要对所有的用户输入都进行一定程度的校验。 本文将带领大家探讨一下用户输入校验的一些场景。一起来看看吧。 在字符串标准化之后进行校验 通常我们在进行字符串校验的时候需要对一些特殊字符进行过滤,过滤之后再进行字符串 阅读全文
posted @ 2020-09-21 10:24 flydean 阅读(1802) 评论(0) 推荐(0) 编辑
摘要:简介 什么是堆污染呢?堆污染是指当参数化类型变量引用的对象不是该参数化类型的对象时而发生的。 我们知道在JDK5中,引入了泛型的概念,我们可以在创建集合类的时候,指定该集合类中应该存储的对象类型。 如果在指定类型的集合中,引用了不同的类型,那么这种情况就叫做堆污染。 产生堆污染的例子 有同学可能会问 阅读全文
posted @ 2020-09-18 10:10 flydean 阅读(1386) 评论(0) 推荐(0) 编辑
摘要:简介 一年两次的JDK最新版本JDK15在2020年9月15日正式发布了,这次的JDK15给我们带了隐藏类,EdDSA,模式匹配,Records,封闭类和Text Block等诸多新特性。 一起来看看吧。 JDK15的新特性 JEP 385 Deprecate RMI Activation for 阅读全文
posted @ 2020-09-16 21:28 flydean 阅读(9001) 评论(3) 推荐(0) 编辑
摘要:简介 字符串是我们日常编码过程中使用到最多的java类型了。全球各个地区的语言不同,即使使用了Unicode也会因为编码格式的不同采用不同的编码方式,如UTF-8,UTF-16,UTF-32等。 我们在使用字符和字符串编码的过程中会遇到哪些问题呢?一起来看看吧。 使用变长编码的不完全字符来创建字符串 阅读全文
posted @ 2020-09-16 09:38 flydean 阅读(813) 评论(1) 推荐(0) 编辑
摘要:简介 快速排序也采用的是分而制之的思想。那么快速排序和归并排序的区别在什么地方呢? 归并排序是将所有的元素拆分成一个个排好序的数组,然后将这些数组再进行合并。 而快速排序虽然也是拆分,但是拆分之后的操作是从数组中选出一个中间节点,然后将数组分成两部分。 左边的部分小于中间节点,右边的部分大于中间节点 阅读全文
posted @ 2020-09-14 09:29 flydean 阅读(645) 评论(0) 推荐(1) 编辑
摘要:简介 在本文中你将了解到Unicode和UTF-8,UTF-16,UTF-32的关系,同时你还会了解变种UTF-8,并且探讨一下UTF-8和变种UTF-8在java中的应用。 一起来看看吧。 Unicode的发展史 在很久很久以前,西方世界出现了一种叫做计算机的高科技产品。 初代计算机只能做些简单的 阅读全文
posted @ 2020-09-12 15:26 flydean 阅读(580) 评论(0) 推荐(1) 编辑

上一页 1 2 3 4 5 6 7 8 9 10 ··· 16 下一页