摘要: ArrayList在单线程下是高效的,但是在多线程下是线程不安全的 ArrayList在多线程的线程不安全的几种体现 删除元素时。a和b同时删除索引为4个数据。这个时候a线程先执行 将4后面的元素往前移动一位。size-- 这个时候b线程也删除 就删除到别的元素。如果是删除第一个元素。a线程size 阅读全文
posted @ 2018-04-07 14:57 意犹未尽 阅读(296) 评论(0) 推荐(0) 编辑
摘要: HashMap不是线程安全的。在多线程操作下 可能会数据丢失! 首先我们了解一下hashmap的存储结构。 hashmap内部是通过数组加链表的形式存储的。 链表的作用则是防止hash碰撞产生的数据丢失而设计的。 什么是hash碰撞 2个不同的key hashcode相同 比如key1通过hashc 阅读全文
posted @ 2018-04-06 16:55 意犹未尽 阅读(599) 评论(0) 推荐(0) 编辑
摘要: volatile关键字的2个作用 1.线程的可见性 2.防止指令重排 什么是线程的可见性? 线程的可见性 就是一个线程对一个变量进行更改操作 其他线程获取会获得最新的值。 线程在执行的行 操作主线程的变量。会将变量的副本拷贝一份到线程的工作区域(避免每次到主线程读取 提高效率),在更改后的一段时间内 阅读全文
posted @ 2018-04-04 18:33 意犹未尽 阅读(3594) 评论(3) 推荐(2) 编辑
摘要: 在多线程中同时进行i++操作 不能保证i的原子性。i++ 可以看作为为以下几个步骤 1.读取i的值 2.计算i+1 3.赋值 在多线程下 可能还在没有来得及赋值 其他线程已经复制,再赋值就是脏数据 synchronized则能保证原子性。synchronized 一个线程获得锁对象则会将对象标记为锁 阅读全文
posted @ 2018-04-02 22:39 意犹未尽 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 以前创建了博客园之后就很少写博客,后来慢慢发现自己很久以前做过的东西以及深入学习的知识点久了之后很容易就变得模糊,当再次用到又是到处翻阅资料。后来尝试将自己深入学习和实践过的知识点详细整理成博客,当遇到问题首先在自己博客里面查阅,如果无法解决 再去查阅资料,然后解决问题后再整理到博客,慢慢的就养成了 阅读全文
posted @ 2018-04-02 20:49 意犹未尽 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2017-05-17 12:04 意犹未尽 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 表现 我们直接使用XMLHttpRequset请求外部接口 会发现 报这个错误 其实浏览器成功发送请求并拿回了数据 只是浏览器的同源策略 禁止了获取 在xhr2 服务器端支持跨域 需要在响应头增加 Access-Control-Allow-Origin: * //*代表任何域。也可以指定地址 Acc 阅读全文
posted @ 2017-01-07 10:47 意犹未尽 阅读(3888) 评论(0) 推荐(0) 编辑
摘要: 主要实现步骤是利用html 几个拖拽事件 1.当文件拖动到容器时候 容器增加边框高亮样式 2.当文件拖出边框的时候 删除边框高亮样式 3.当文件放置在容器的时候 通过事件参数 获得 放置的文件信息 4.使用html5 的formdata 对象 将文件信息添加进去 5.使用XHR2 将formdata 阅读全文
posted @ 2017-01-07 09:12 意犹未尽 阅读(917) 评论(0) 推荐(0) 编辑
摘要: 朋友让帮忙写一个正则表达式 是匹配大于等于0的数, 这还不简单 ^0|([1-9]\d*)$ 搞定 整个字符串匹配一个字符串0 或者匹配[1-9]开头 后面跟着任意数字 想法很丰满 测试 -2000 ,2.25这种也能匹配。 搞不懂为什么 后来才明白 多个表达式逻辑或 要用(表达式a|表达式b|表达 阅读全文
posted @ 2016-12-16 16:24 意犹未尽 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 列转行 select t.客户姓名,sum(case when t.收款类型='首款' then t.金额 else 0 end as '首款'),sum(case when t.收款类型='尾款' then t.金额 else 0 end as '尾款') from table t group b 阅读全文
posted @ 2016-11-19 10:13 意犹未尽 阅读(508) 评论(0) 推荐(0) 编辑