随笔分类 - java_基础
摘要:增强for循环 使用增强for循环可以简化数组和Collection集合的遍历,格式: 例: 集合框架中的三种迭代方式删除数据 普通for循环,可以删除,注意让索引做自减运算 迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常 增强for循环不能删除
阅读全文
摘要:泛型的概念 在编写集合相关代码时在eclipse里面总有一些黄色警告,在不使用注解的情况下,使用泛型之后,就不会有这些黄色警告了。通过API可以看到Collection,List,ArrayList,这几个类里面都有,这个就是泛型,里面的E可以是任何引用数据类型,使用泛型指明了数据类型之后,这个集合
阅读全文
摘要:LinkedList特有方法 public void addFirst(E e)及addLast(E e) public E getFirst()及getLast() public E removeFirst()及public E removeLast() public E get(int inde
阅读全文
摘要:List的三个子类的特点 因为三个类都实现了List接口,所以里面的方法都差不多,那这三个类都有什么特点呢? ArrayList:底层数据结构是数组,查询快,增删慢。线程不安全,效率高。 Vector:底层数据结构是数组,查询快,增删慢。线程安全,效率低。Vector相对ArrayList查询慢(线
阅读全文
摘要:数组数据结构 特点:查询和修改快增加和删除慢ArrayList和Vector的底层是使用数组的数据结构在ArrayList中初始化的长度是10,如果长度不够用了,每次会增加之前长度的50%,然后将旧的集合中的数据拷贝到新的集合中。Vector每次扩容的长度是之前的一倍数组结构图: 为什么查询和修改快
阅读全文
摘要:Vector是在jdk1.0版本中就存在的,当时的集合体系还没有现在这么多,在jdk1.2中Vector才实现了Collection接口,不过随着jdk的不断更新,这个类已经逐渐被ArrayList所替代,这里简单介绍下Vector里面特有的方法
阅读全文
摘要:List迭代时修改元素的问题 请编写代码完成以下需求:判断一个List里面是否包含monkey,如果包含的话,向集合中添加1024这个字符串。‘ 上面代码在向list中添加完元素之后再执行到String str = (String)iter.next();这行时,报出ConcurrentModifi
阅读全文
摘要:集合的由来 数组长度是固定,如果要改变数组的长度需要创建新的数组将旧数组里面的元素拷贝过去,使用起来不方便。java给开发者提供了一些集合类,能够存储任意长度的对象,长度可以随着元素的增加而增加,随着元素的减少而减少,使用起来方便一些。 集合继承体系图 java提供了一些集合类,这些集合类分别适用于
阅读全文
摘要:Random类概述 Random类在java.util包下,使用这个类可以生成随机数 练习: 完成一个彩票机选号码生成器,这里以双色球为例,双色球每注中奖号码由6个不同的红色球号码和1个蓝色球号码组成。红色球号码从1~33中选择;蓝色球号码从1~16中选择。 分析:随机的从1~33中选择6个不同的数
阅读全文
摘要:enum简介 在日常开发中可能有一些东西是固定的,比如一年只有4个季节,春夏秋冬。我们可以自己定义一个类里面存放这4个季节。在jdk5之后,引入了枚举(enum)的概念,可以通过enum去定义这四个季节。 定义常量类,里面存放四季
阅读全文
摘要:DecimalFormat类概述 在一些金融或者银行的业务里面,会出现这样千分位格式的数字,¥123,456.00,表示人民币壹拾贰万叁仟肆佰伍拾陆元整,java.text包下提供了一个DecimalFormat的类可以满足这样的需求。 DecimalFormat类概述 在一些金融或者银行的业务里面
阅读全文
摘要:BigDecimal类概述 由于在运算的时候,float类型和double很容易丢失精度,在金融、银行等对数值精度要求非常高的领域里面,就不能使用float或double了,为了能精确的表示、计算浮点数,Java提供了BigDecimal。注意:如果对计算的数据要求高精度时,必须使用BigDecim
阅读全文
摘要:BigInteger类概述 BigInteger类可以让超过Integer范围的数据进行运算,通常在对数字计算比较大的行业中应用的多一些。
阅读全文
摘要:Math类概述 在java.lang包下,有个Math类,这个类包含用于执行基本数学运算的方法,如四舍五入,开方等等。
阅读全文
摘要:获取毫秒数 工作中基本上都会需要使用对时间的操作,java也提供了一些时间相关的类。下面代码可以获取自 1970年1月1日 00时00分00秒 000毫秒 到当前的毫秒数。 获取系统当前时间 在java.util包下面有个Date类,通过这个类可以获取系统的当前时间 日期格式化类 上面代码中打印的日
阅读全文
摘要:什么是自动拆箱和自动装箱? 以上特性是jdk5中加入的,也就是说在jdk5版本之前是不支持自动装箱和自动拆箱的。 注意:在判断两个Integer类型是否相等时,要使用equals方法,不能使用"==",Integer已经重写了Object中的equals方法。 整型常量池 如果数据是在(-128~1
阅读全文
摘要:包装类 什么是包装类?Java里面8个基本数据类型都有相应的类,这些类叫做包装类。包装类有什么优点可以在对象中定义更多的功能方法操作该数据,方便开发者操作数据,例如基本数据类型和字符串之间的转换。基本数据类型和对应的包装类 包装类都在java.lang包里面 下面以Integer为例来学习一下包装类
阅读全文
摘要:StringBuffer简介 StringBuffer是一个字符串缓冲区,如果需要频繁的对字符串进行拼接时,建议使用StringBuffer。工作原理StringBuffer的底层是char数组,如果没有明确设定,则系统会默认创建一个长度为16的char类型数组,在使用时如果数组容量不够了,则会通过
阅读全文
摘要:String练习 1、字符串反转,例如将"abc"变成"cba" 2、统计一个字符串里面另一个字符串出现的次数,例如统计"monkey"在"I am monkey1024.monkey like banana.little monkey is smart."中出现的次数 3、统计一个字符串中大写字母
阅读全文
摘要:String类简介 1、字符串(String)的不可变性 String类在java.lang包下面,是Object类的直接子类,通过API或者源码可以看到,String类是final修饰的,这说明String类不能被继承。字符串一旦创建好之后,里面的内容是不能被修改的,jvm会将双引号””中的内容存
阅读全文