![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
BUG担当
一处编译,到处BUG
展开
-
利用反射实现简易IOC工具
定义一个注解用于放在属性上面给属性赋值@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface Property { String value();}定义工具方法,根据提供的类全名以及类属性上注解上的值将对象创建出来(这个工具这里只能处理属性为基本数据类型的自动注入。仅仅当作一个...原创 2020-04-16 19:29:04 · 349 阅读 · 0 评论 -
哲学家就餐问题-多线程并发死锁现象
假设下面一个场景:4个哲学家,同坐一张方桌子,共2双筷子,4只筷子;每只放在桌角处,每个哲学家有可能拿到1只,1双,或者没有拿到的情况,只有拿到一双时才能开始用餐;没有一个哲学家能用餐成功的时候就处于僵持状态。使用多线程模拟public class Philosopher extends Thread{ private String name; private C...原创 2020-04-15 22:20:02 · 451 阅读 · 0 评论 -
Java IO实现单个文件,文件夹的复制
单个文件复制这里需要用到的是字符型文件输入流 (FileInputStream) 和字符型文件输出流 (FileOutputStream)。public class FileUtil{ public static void copyFile(String originalFilePath,String targetPath){ File originalFile = n...原创 2020-04-15 18:45:46 · 178 阅读 · 0 评论 -
生产者-消费者模型(wait()、notify()、notifyAll()、synchronized的使用)线程安全问题
在刚接触Java线程的时候,对于wait(),notify()以及notifyAll()方法,synchronized修饰符并不是很了解,后面学习到一个例子也称作为生产者消费者模型,下面通过这样一个模型来进行进一步理解线程安全相关的知识。模拟这样一个场景:有一个中心仓库,生产者将生成的商品放入仓库中,而消费者则可以在仓库中获取商品。消费者可以有多个。实现过程:模拟一个仓库:(为了...原创 2020-04-15 17:58:00 · 148 阅读 · 0 评论 -
String的不可变特性、内部存储结构、重写至Object的几个方法
一、 不可变特性,内部存储结构说到String字符串,可以语义的理解为将一系列字符(char),然后将串在一起,就是字符串了。可以猜测到String的底层也许就是这样构建出来的。 如下:进入源码发现内部结构其实就是一个字符型数组(char[])呈现的,所以字符串中的字符都是拆分成单个字符存入数组的。String字符串又称为不可变字符串;相对应的有可变字符串StringBuilder(...原创 2020-04-15 15:22:33 · 235 阅读 · 0 评论 -
对于Java枚举的理解
一,Java枚举其实本质是一种特殊的类特殊在于:对于一般的类在定义时是不确定实际使用的时候到底会创建多少个对象,可以具需求不定量的创建其类对象。而枚举是在类定义的时候可以确定对象个数的( 也就是说可以一一列举出来的,固定的数个对象 )。二,通过普通的类描述,简单模拟枚举的特点,从而理解枚举1.枚举的特点是对象个数是确定的,所以首先我们需要确保构造方法私有,才能确定对象不能随意被创建。2.再...原创 2020-04-13 23:06:35 · 200 阅读 · 0 评论 -
使用Scanner类控制台输入时出现直接跳过输入过程问题
在之前学习java 的时候,有用到过这样一个类Scanner用于在控制台输入内信息,但是在输入的时候偶然出现过一个问题:举个栗子:Scanner input = new Scanner(System.in);System.out.println("请输入姓名:");String name = input.nextLine();System.out.println("请输入学号:");i...原创 2020-04-10 14:10:39 · 2487 阅读 · 8 评论 -
判断字符串是否为空:出现NullPointerException?
在撸代码过程中判断字符串是否为空的时候你是否遭遇过这样一个问题: NullPointerException,不瞒你说,我是踩过这样的坑,555!!!判断字符串非空一般都有这几个条件: str!=null , !str.isEmpty() , !"".equals(str) ,此处的isEmpty() 和 equals(); 其实效果是一样的,其实都是判断判断字符串长度为0...原创 2020-04-10 12:12:11 · 712 阅读 · 0 评论 -
Java包装类Integer-----那些年我们一起踩过的坑
包装类砸们并不陌生,在实际开发过程中也比较常用,似乎特别容易上手,上来就是Integer.paretInt("123")........... 会用说明它自身封装得比较完善且优化了。从而比较方便了。但是会用就代表你真正理解它本身吗?不见得。原创 2020-04-09 13:29:52 · 557 阅读 · 1 评论 -
Java基本数据类型之初始化可能遇到小坑
Java的基本数据类型其实我们并不陌生,从存储的所占内存从小到大依次是 : byte(字节型)【8bit】, short(短整型)【16bit】, int(整型)【32bit】, long(长整型)【64bit】, float(单精度浮点型)【32bit】, double(双精度浮点型) 【64bit】。在开发的过程中很多时候定义一个变量不会直接自己初始化赋值的,而是直接将某个方法产生过程的结果...原创 2020-04-02 20:39:29 · 264 阅读 · 0 评论