java基础
文章平均质量分 89
ThreeOO
这个作者很懒,什么都没留下…
展开
-
java锁概括
Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。下面给出本文内容的总体分类目录:标题乐观锁 VS 悲观锁乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度。在Java和数据库中都有此概念对应的实际应用原创 2021-07-04 18:22:42 · 196 阅读 · 0 评论 -
BIO、NIO、AIO,同步、异步、阻塞、非阻塞的概念
同步异步、阻塞非阻塞同步 : 自己亲自出马持银行卡到银行取钱(使用同步IO时,Java自己处理IO读写);异步 : 委托一小弟拿银行卡到银行取钱,然后给你(使用异步IO时,Java将IO读写委托给OS处理,需要将数据缓冲区地址和大小传给OS(银行卡和密码),OS需要支持异步IO操作API);阻塞 : ATM排队取款,你只能等待(使用阻塞IO时,Java调用会一直阻塞到读写完成才返回);非阻塞 : 柜台取款,取个号,然后坐在椅子上做其它事,等号广播会通知你办理,没到号你就不能去,你可以不断问大堂经理排原创 2020-11-18 19:08:47 · 355 阅读 · 0 评论 -
java中try catch语句和finally执行顺序的原理
java方法是在栈幀中执行,栈幀是线程私有栈的单位,执行方法的线程会为每一个方法分配一小块栈空间来作为该方法执行时的内存空间,栈幀分为三个区域:操作数栈,用来保存正在执行的表达式中的操作数,数据结构中学习过基于栈的多项式求值算法,操作数栈的作用和这个一样局部变量区,用来保存方法中使用的变量,包括方法参数,方法内部声明的变量,以及方法中使用到的对象的成员变量或类的成员变量(静态变量),最后两种...原创 2020-02-01 10:49:10 · 623 阅读 · 2 评论 -
集合操作的ConcurrentModificationException异常分析,为什么有时候循环remove不会异常?Iterator方式也会异常吗?
在我们代码中,禁止在foreach遍历list的时候直接使用list.remove()方法来删除元素的,会ConcurrentModificationException。不同的集合使用不同的方式,ArrayList,Vector,CopyOnWriteArrayList***单线程情况:如果实际应用场景下有在遍历时删除元素的需求,如果容器为ArrayList或者Vector请使用Iterato原创 2016-10-11 14:52:16 · 653 阅读 · 0 评论 -
Java中的Copy-On-Write容器,CopyOnWriteArrayList和CopyOnWriteArraySet
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。C转载 2016-02-17 18:14:06 · 1314 阅读 · 0 评论 -
HashMap,LinkedHashMap,TreeMap,HashTable,ConcurrentHashMap,ConcurrentSkipListMap 关于k,v是否为null,以及输出排序
Map的k,v是否为可为null,遍历输出顺序使用场景原创 2016-02-16 11:24:39 · 752 阅读 · 0 评论 -
十进制小数转为二进制
十进制数转换为二进制的大家都清楚了,那么带小数的十进制如何转换为二进制?整数部分当然和十进制整数转换方式一样,也就是说小数部分如何转化为二进制?方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分 为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取原创 2015-01-16 12:01:37 · 1720 阅读 · 0 评论 -
遍历Map<k,v> k,v的几种方法
遍历key+valuekeySet遍历key+value(写法1):Iterator it= map.keySet().iterator();while (iter.hasNext()) { key =it.next(); value = map.get(key);}keySet遍历key+value(写法2):原创 2014-12-19 19:53:45 · 3451 阅读 · 0 评论 -
JAVA中string创建对象详解
字符串对象是一种特殊的对象.String类是一个不可变的类..也就说,String对象一旦创建就不允许修改 String类有一个对应的String池,也就是 String pool.每一个内容相同的字符串对象都对应于一个pool里的对象. 1 看下面一段代码. String s = new String(“abc”); String s1 = “abc”; String s2 = new Stri原创 2014-11-21 00:40:49 · 718 阅读 · 0 评论 -
Java异常显示声明和不显示声明区别
1、如果我在程序中声明了某个异常,则抛出异常的时候,不会显示出处,直接抛出。2、如果我没有在程序中声明,那么程序会同时抛出异常的出处。这是为什么?还有,当我没有显式声明的时候,系统会怎么办?原创 2014-09-25 19:43:00 · 3323 阅读 · 0 评论 -
JAVA 泛型由浅入深详细不过的解释
JAVA泛型? T K V E等代表的意思博客分类: JavaJavaC#C++CSQL 平时看java源代码的时候,如果碰到泛型的话,我想? T K V E这些是经常出现的,但是有时想不起来代表什么意思,今天整理下: ? 表示不确定的java类型。 T 表示java类型。 K V 分别代表java键值中的Key Value。 E 代表Elem转载 2014-09-14 10:25:24 · 665 阅读 · 0 评论 -
Javaz中String,StringBuffer,StrigBuilder
package javaPrimary;public class StringSpilt {public static void main(String[] args) {String s = "helloworld";String[] s2 = s.split("ee");for (String string : s2) {System.out.println(s原创 2014-09-24 19:23:41 · 691 阅读 · 0 评论 -
JAVA中如何实用break,continue,跳出多重循环
package javaPrimary;public class Loop { public static void main(String[] args) { for(int i=0; i if(i==5){ break; }原创 2014-09-23 22:12:14 · 1351 阅读 · 0 评论 -
java类和对象的关系
在面向对象的思想中,一切物体皆对象,我们以对象为单位进行编程,将这个对象所有的属性方法包装在一起,就是封装。一般情况,我们通过类的构造器来创建类对象,构造器是一个拥有和类名同样的名字的方法,我们可以对它传递参数,进行一些初始化工作,如,当我们需要在创建对象的时候,初始化其姓名及年龄,我们可以这样来做:[java] view plaincopy原创 2014-09-23 21:02:34 · 704 阅读 · 0 评论 -
java移位运算符以及其他运算符的操作
java中移位操作总是看了wangJava的位运算(bitwise operators)直接对整数类型的位进行操作,这些整数类型包括long、int、short、char和 byte,位运算符具体如下表:运算符说明左移位,在低位处补0>> 右移位,若为正数则高位补0,若为负数则高位补1原创 2014-09-27 21:11:59 · 627 阅读 · 0 评论