黑马程序员技术交流社区

标题: 这是我近期又整理每天比较重要的题 [打印本页]

作者: 徐崭    时间: 2015-12-14 00:03
标题: 这是我近期又整理每天比较重要的题
StringBuffer;       
                                举例:
                                        键盘录入:"abc" 
                                        输出结果:"cba"
                                用StringBuffer来做。

                                截取subString返回的值不是本身了要用string去接收.

                                String和StringBuffer,StringBuilder的区别
                                String是长度固定的字符串其余都是可以改变的.
                                StringBuffer:JDK1.0以后出现的,线程安全(同步),效率低
                                                                StringBuilder:JDK1.5以后,线程不安全,效率高。
                                                                他们的共同点是:他们都是长度可变的字符序列。
java的传递问题;
        只有值传递,引用传递传递的是地址值.
        形参的类型:
                                基本类型;形参的改变不影响实参。
                                引用类型:形参的改变直接影响实参。(String类有点特殊)
                                String类虽然是引用数据类型,但是他当作参数传递时和基本数据类型是一样的

                Date类中的getTime的方法是获取当前毫秒值    通过时间获取毫秒值.
                System.CurrentTimeMillis获取当前毫秒值  通过系统类的方法获取毫秒值.
                setTime设置毫秒值改变时间对象.
替换功能:
                replaceAll返回是用String接收.
切割功能:
                split返回是用字符串接受.int[] 什么什么的字符串.

                字符串对象名.replaceAll( "(.)\\1+" , "$1");                //$1代表的是 获取到组1里边的内容
Random类中的nextInt()获取到一百的随机数.
Ssytem类不能实例化.
BigInteger:
                可以让超过Integer范围的数字进行运算。
BigDecimal:
                为了更精确的表示小数(浮点型的数据)。
SimpleDateFormat:日期格式化
                package com.heima.Z;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test32 {
        public static void main(String[] args) throws ParseException {
                Date d = new Date();
                SimpleDateFormat s = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
                System.out.println(s.format(d));
               
                String s1 = "2000年08月08日08:08:08";
                SimpleDateFormat s2 = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
                Date d1 = s2.parse(s1);
                System.out.println(d1);
        }
}
集合和数组的区别:
        集合:长度可遍,只能是引用类型要是储存了基本类型会自动装箱变成引用类型.
        数组:长度不可遍,可以存储基本类型也可以存储引用类型,基本类型存的值,引用类型存的是地址值.
集合体系:
        分为单列集合:
                顶层接口Collection:
                Lsit体系:有序(元素的存,取顺序是一致的)可重复的
                        ArrayList:底层结构是数组,查询快,增删慢,线程不安全的效率高.
                        Vector:底层结构是数组,查询快,增删慢,线程安全的效率低.
                        Linked:底层结构是链表,查询慢,增删快,线程不安全的效率高.
                set体系:无序(元素的存储是无序的,) 唯一.
                        HashSet:底层结构是哈希算法.
                        TreeSet:底层结构是二叉树算法.
        length算字符串遍历的时候用length();
        length算数组的遍历的时候用length

泛型:<>,里面必须放引用类型,提高了安全性,前后必须一致,后面可以不写JDK1.7新特性.
数组转成集合:        Arrays类中asList();

HashSet保证元素唯一性依赖于:hashCode()和equals()方法,
                        如果是HashSet存储对象,想保证元素唯一性,必须重写这两个方法。
LinkedHashSet:
                是HashSet的子类,所以也具有唯一性。
                底层是链表实现的,它也是Set体系中唯一一个 可以保证 怎么存,就怎么取(有序)的集合类。
TreeSet:
                让基本类去实现Comparable接口,然后重写接口中的compareTo()方法
                创建TreeSet集合对象的时候,传一个比较器Comparator接口的 子类对象进来。
HashMap:底层也是哈希表来计算的线程不安全的,效率高,键是自定义类型依赖重写equals 方法和Hashcode 有一个子类是LinkedHashMap底层是链表结构,可以保证怎么存就这么取,
TreeMap:二叉树,不安全的,效率高,如果键是自定义类型,是通过自然排序实现基本类中的接口,还有一种是比较接口在TreeMap的空参里写一个弥明内部类然后实现比较。
这里是我整理集合什么的比较重要的提醒还有一些应该注意的东西,日期转化什么的正则都有所提示希望大家 能一起好好交流..
作者: 马赛    时间: 2015-12-14 00:22
马克一下
作者: 队长别开枪是我    时间: 2015-12-14 16:31
String是长度固定的字符串这句话不是很明白,不应该是赋值后无法改变的字符串么,为什么仅仅长度固定?
作者: 孙志明    时间: 2015-12-14 17:31
是呀,谁给讲讲
作者: 744919632    时间: 2015-12-14 18:09
都是java基础啊。
作者: 苗超维    时间: 2016-2-1 22:01
总结的很不错
作者: a527512132    时间: 2016-2-2 01:20
总结很好,要学习
作者: tujiu888    时间: 2016-2-2 11:28
受教了,挺有用得
作者: Android666    时间: 2016-2-11 21:44
好给力,你真帅
作者: 枼子    时间: 2016-2-12 13:42
不错 很详细啊
作者: Mayer    时间: 2016-2-12 15:11
你真帅
作者: youngrivers    时间: 2016-2-13 19:35
基本语法都差不多,都是数据的传递




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2