摘要: 1.包装类产生的原因:八种基本数据类型并不支持面向对象编程-->不具备"对象"的特性:不携带属性,无法方法可调用 2.包装类对象封装相应的基本类型的数据,包装类对象一经创建,内容(被封装的基本类型数据值)不可改变 举个栗子: 3.基本数据类型-->相应包装类(装箱);包装类-->基本数据类型(拆箱) 阅读全文
posted @ 2018-11-27 09:47 静心*尽力 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 一:定义:专门用来生成伪随机数,有两个构造器,一个构造器使用默认的种子(以当前时间作为种子),一个需要程序员显式传入一个long型整数的种子 二.使用方法 补充:一.ThreadLocalRandom是Random的增强版,出现在java7中 在并发环境下,使用前者可以减少多线程资源竞争,保证体统具 阅读全文
posted @ 2018-11-25 11:48 静心*尽力 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 一.getChars()方法 二.indexOf()方法 三.startsWith()方法 四.endsWith()方法 五.toUpperCase()与toLowerCase()方法 六.compareTo()方法 七.StringBuffer类 八.deleteCharSet()方法 九.set 阅读全文
posted @ 2018-11-25 10:37 静心*尽力 阅读(584) 评论(0) 推荐(0) 编辑
摘要: 变身 : 优化: 一不小心就暴露了真实姓名 阅读全文
posted @ 2018-11-16 15:43 静心*尽力 阅读(564) 评论(0) 推荐(1) 编辑
摘要: 假设线程0依次进入①、②、③,此时线程1依次进入①、②时,线程0想出来,而线程1想进去,就会出现死锁现象. 当线程0拿到了locka对象,线程1拿到了lockb对象,出现了死锁 阅读全文
posted @ 2018-11-07 21:51 静心*尽力 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 第三种情况时:进入线程0,判断是否为null,获得线程锁占位,再判断是null创建对象,返回一个s. 假设线程0释放执行权,线程1判断完后,是进不来的--因为0线程的执行资格还没释放,接着释放执资格. 接着线程1进入,判断为null,获得线程锁占位,再次判断s不为空. 阅读全文
posted @ 2018-11-07 19:22 静心*尽力 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 8. 用户自定义完整性不属于其他任何完整性类别的特定业务规则,所有完整性类别都支持用户定义完整性,包括CREATE TABLE 中所有的列级约束和表级约束,存储过程和触发器。 阅读全文
posted @ 2018-11-05 19:19 静心*尽力 阅读(807) 评论(0) 推荐(0) 编辑
摘要: 温馨小提示:本实例中之所以要在线程一开启下加上睡眠方法,因为如果不加上睡眠方法则线程一在拥有线程执行权的时候会把flag切换成false,导致无论是线程一还是线程二都走函数同步代码块. 阅读全文
posted @ 2018-10-31 21:00 静心*尽力 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 温馨小提示:在本示例中创建两个线程对象代表的是两个不同的人,至于传入Cus对象,是为了在开启线程时,调用同一个run方法(干同一件事-->存钱),在run方法中封装的就是存钱的任务,需要创建银行对象才能调用其中的add方法,加入在run中创建银行对象,两个线程进入就会创建两次银行对象-->存的是不同 阅读全文
posted @ 2018-10-30 21:37 静心*尽力 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 温馨小提示:如果不加入synchronize(对象){}函数块,就会出现线程安全现象的产生.synchronize中的对象相当于一把锁,个人理解为缓存区,一旦一个线程进入就必须执行完己身任务,相当于缓存区已满,其它线程就无法进入. 阅读全文
posted @ 2018-10-30 21:19 静心*尽力 阅读(116) 评论(0) 推荐(0) 编辑