文档章节

JavaSE核心——各种类

Bug-Killer
 Bug-Killer
发布于 2016/04/11 17:33
字数 2041
阅读 54
收藏 8

一,Object类

    在java的继承体系中,java.lang.Object类位于顶端(是所有对象的直接或间接父类)。如果一个没有使用extends关键字来表明要继承的类,则默认继承java.lang.Object类,Object类定义了“对象”的基本行为,被子类默认继承。

    1,toString()方法:返回一个可以表示该对象属性内容的字符串。

Object  obj = new Object();
String info = obj.toString() ;
Systmem.out.println(info) ;  //返回一个可以表示该对象属性内容的字符串。

    ①使用toString()方法,因为所有的类都继承了Object类,而toString()方法是Object类定义的,所以我们直接继承了这个方法,Object类的toString()方法帮我们返回了一个字符串。这个字符串的格式是固定的。

    ②

public static void main(String[] args){
    //SOP(toString()) ;        //不能直接调用,编译错误
    Point p = new Point(1); 
    System.out.println(p) ;    //输出p对象的toString()方法返回值。
}

    不能直接使用toString()方法,因为该方法不是静态的,静态方法中不能直接引用非静态的属性和方法,想引用必须创建对象。非静态方法中可以直接引用静态属性和方法。

    2,equals方法。

        用于对象的“相等”逻辑。

        “==”与equals的区别:

        用“==”比较对象时,描述的是两个对象是否是一个对象。根据地址值判断。而equals描述的是两个对象的内容是否相等,内容相等取决于业务逻辑需要,可以自己定义比较规则。

二,String类

    是字符串类型,是引用数据类型,是不可变字符串,无线程安全问题。在java.lang.String类中。

    1,String的equals方法:两个字符串进行比较时,我们通常使用equals方法进行比较,字符串重写了Object类中的equals方法,用于比较字符串是否一致,我们不能保证任何时候“==”都成立。

    2,当一个字符串变量和一个字面量进行比较时,我们一般吧字面量放在前面,即字面量.equals(字符串变量)。以为这样不会出现空指针异常,如果反过来,字符串变量.equals(字面量),如果字符串变量为空,则会出现空指针异常。如果比较双方都是变量则可以使用if(str!=null&&str.equals(str1))

    3,String另外一个equals方法,equalsIgnoreCase(),该方法的作用是忽略大小写去比较字符串内容。常用环境:验证码比较!!if("HELLO".equalsIgnoreCase(str)) ;。

    4,String的基本方法:

        ①String toLowerCase():返回字符串的小写形式,如,str.toLowerCase() ;

        ②String toUpperCase():返回字符串的大写形式,如,str.toUpperCase() ;

        ③String trim():去掉字符串两端的空格,中间的不去掉,如,str.trim() ;

        ④boolean startsWith():判断字符串是否以参数字符串开头,如,str.startsWith("s");

        ⑤boolean endsWith():判断字符串是否以参数字符串结尾,如,str.endsWith("s") ;

        ⑥int length():返回字符串的长度,如,str.length() ;

    5,indexOf()方法,检索,位置是从0开始。

        ①int indexOf(String str):在给定的字符串中检索 str,返回其第一次出现的位置,检索不到返回-1;

        ②int indexOf(String str,int form):在给定的字符串中从form开始检索str,返回其第一次出现的位置,检索不到返回-1,form为开始位置,包括form,form之前不检索。

        查找Hello in java in world中in之后第一个i的位置

index = indexOf("in") ;                    //先查出in字符串位置
index = indexOf("i",index+in.length());    //在in之后查i,先取出in的长度,在in之后查找


        ③int lastIndexOf(String str):在给定的字符串中检索str,返回其最后一次出现的位置,检索不到返回-1;

            可以看做是从右往左查找。

        ④int lastIndexOf(String str,int form):在给定的字符串中从form开始检索str,返回其第一次出现的位置,检索不到返回-1,form为开始位置,包括form,form之后不检索,因为是从右往左检索,所以之后不检索,只检索form之前字符串。

    6,substring()方法,字符串的截取,下标从0开始。

        ①String substring(int start,int end);返回的字符串从start开始(包含),以end结束(不包含)。

        ②String substring(int start);返回的字符串从start开始(包含),到字符串结尾。

    7,getBytes方法(编码):将字符串变为相应的字节。    

        ①byte[] getByte(); byte[] arr = str.getByte() ;sop(Array.toString(arr));

    8,split方法,拆分:字符串的拆分。

String str = "123,324,3456,456,,,";
String[] array = str.split(",");
sop(Arrays.toString(array));    //---->[123,324,3456,456]

三,StringBuilder类

    与String不同,StringBuider封装可变的字符串,有线程安全问题,对象创建后,可以通过调用方法来改变其封装的字符序列。

    StringBuilder常用方法:

        ①追加字符串:StringBuilder append(String str) ;

        ②插入字符串:StringBuilder insert(int index,String str);插入后,原内容往后移。

        ③删除字符串:StringBuilder delete(int start,int end);

        ④替换字符串:StringBuilder replace(int start,int end,String str);含头不含尾

        ⑤字符串翻转:StringBuilder reverse() ;

StringBuilder builder = new StringBuilder() ;
    builder.append("good good study") ;
    builder.append("day day up") ;
    System.out.println(builder.toString());    //----》【"good good study day day up"】
    builder.insert(4,"!");
    builder.delete(5,6);
    builder.replace(0,3,best);
    builder.delete(7,builder.length());

        注意事项:

        1)一个类对某个字符串进行频繁操作时,要使用StringBuilder,可以大规模的修改字符串,而不再开辟新的字符串,从而节约内存资源。所以,对有着大量操作字符串的逻辑中,不使用String,而使用StringBuilder。

        2)append是有返回值的,返回值类型是StringBuilder

        3)StringBuilder和StringBuffer区别:效果是一样的。

            StringBuilder是线程不安全的,效率高,需要JDK1.5以上

            StringBuffer 是线程安全的,效率低,也可变字符串。

            在多线程操作的情况下,应该使用StringBuffer,因为StringBuffer是线程安全的。

四,SimpleDateFormat类

    java.text.SimpleDateFormat类,日期转换类,很方便的进行日期和字符串自建转换。

    1)parse方法,按照特定的格式,将代表时间的字符串转成Date对象。

    2)format方法,将日期数据按照指定格式转成字符串。

    字符串转成日期

SimpleDateFormat sdf = new SimpleDateFormat("yy-mm-dd") ;
String dateformat = "2016-04-11";    //创建一个日期格式的字符串
//将字符串转成相应的日期对象Date
Date date = sdf.parse(dateformat) ;  //要捕获异常
System.out.println(date);            //输出date对象。

    日期转成字符串

SimpleDateFormar sdf = new SimpleDateFormat("yy-mm-dd") ;
Date date = new Date() ;
String now = sdf.format(date) ;    //把日期对象传进去
System.out.println(now) ;

    日期格式中,-和空格无意义,无含义的都将原样输出

    将当前系统时间转为 yy-mm-dd hh-mm-ss效果

SimpleDateFormat sdf = new SimpleDateFormat("yy-mm-dd hh-mm-ss");
date = sdf.format(now) ;
System.out.println(date) ;

        
五,包装类

        Java语言的8种基本类型分别对应了8种包装类,每一个包装类都封装了一个基本数据类型的成员变量,同时,还提供了针对该数据类型的实用方法。

        1)包装类的作用:把基本数据类型当做引用数据类型看待。

        2)包装类的名字:除了Integer(int),Charset(char),其他包装类名字都是基本数据类型首字母大写。

        3)拆、装箱:Integer i = new Integer(1) ;   创建一个以对象形式存在的整数1,这种从基本数据类型到引用类型的转变称之为“装箱”,反之叫“拆箱”。

        4)装箱:方式一,Double d = new Double(1.2) ;        //装箱

                        方式二,Double d = Double.valueOf(1.2) ;   //基本类型都有valueOf()方法。

        5)拆箱:double num = d.doubleValue() ;                //拆箱

        6)包装类使用前提:JDK 1.5

public static void say(Object obj) {
    System.out.println(obj) ;
}
    int a = 1 ;    //基本类型,不是Object子类。
    say(a) ;

        7)包装类的使用:实例化一个对象,这个对象对应的是整数1,Integer的作用是将基本数据类型int作为引用数据类型看待,这样就可以参与到面向对象设计中,因此可以将int当做一个Object来看待,也就是Object子类。

Integer i = new Integer(a) ;    //装箱
Integer ii = Integer.valueOf(a) ;    //装箱另一种操作
int num = i.intValue() ;        //拆箱
say(i) ;        //Integer是Object的子类,可以直接调用

        8)自动装箱

say(Integer.valueOf(a)) ;    //自动装箱
num = i.intValue() ;         //自动拆箱






© 著作权归作者所有

Bug-Killer
粉丝 5
博文 76
码字总数 49654
作品 0
海淀
程序员
私信 提问
加载中

评论(0)

Android 和 Java 之间不得不说的事

最近整个Java阵营都陷于一场讨论Oracle和Google之间关于Android平台的专利诉讼官司的混战中。来自“外刊IT评论”的最新翻译文章向您解释最近 Oracle 想要告 Google 的 Android 系统的原因。该...

鉴客
2010/09/01
1.9K
8
java-1概述

Java的含义 java是由Sun Nicrosystems公司于1995年5月推出的java面向对象程序设计语言和java平台的总称 两层含义:开发语言 开发平台 java主要特征 简单 动态 高性能 跨平台 面向对象 健壮性...

一杯千岁醉
2017/05/29
0
0
SpringMVC+Mybatis+Mysql实战项目学习--环境搭建【转】

1.开发IDE:Spring Tool Suite(自带maven插件) 保证编码格式为utf-8 -Dfile.encoding=UTF-8 2.jdk:java 1.8 下载地址http://www.oracle.com/tech 1.开发IDE:Spring Tool Suite(自带maven插......

看到了打开了
2016/10/05
217
1
SpringMVC+Mybatis+Mysql实战项目学习--环境搭建【转】

1.开发IDE:Spring Tool Suite(自带maven插件) 保证编码格式为utf-8 -Dfile.encoding=UTF-8 2.jdk:java 1.8 下载地址http://www.oracle.com/tech 1.开发IDE:Spring Tool Suite(自带maven插......

梵蒂冈考虑过
2016/10/07
175
0
Java安全 – JCE (Blowfish算法报错)

代码里用Blowfish算法加解密,结果jdk升到1.7后算法初始化失败 java.lang.RuntimeException: java.lang.RuntimeException: PANIC: Unreachable code reached. JCE不熟悉,更新到原来jdk6的s...

greki
2014/06/14
2.8K
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka 数据可靠性、消息发送传输

本篇分别介绍 数据可靠性保障 消息发送模式 消息传输保障 数据可靠性保障 当Producer向Leader发送数据时,可以通过request.required.acks参数来设置数据可靠性的级别,各个级别及其含义如下表...

moon888
18分钟前
78
0
敏捷原则比敏捷框架更重要

2018年5月10日,敏捷宣言的发起人之一Ron Jeffries公开宣称“开发人员应放弃使用敏捷框架”。Ron Jeffries提到,诸如Scrum和看板之类的敏捷框架,与敏捷原则相差甚远,并不能为开发人员提供好...

Worktile
21分钟前
69
0
尽速下载器 支持HTTP/磁力链接/BT种子协议下载预览 安卓10可用

下载加速,支持HTTP/磁力链接/BT种子等多种下载协议 可完美替换安卓原生下载器 支持手机自带浏览器点击下载链接,直接调出APP 超高下载成功率、超快下载速度 版本:1.6.1 大小:11.5 MB 下载...

xiaogg
22分钟前
63
0
一个用于在浏览器上展示bim模型的vue插件

# wl-bim-viewer 一个用于在浏览器上展示bim模型的vue插件,可以预览转化后的CAD文件。 基于vue和autodesk forge viewer写成。 目前支持单模型加载及多模型顺序加载。 其他特性正在扩展中。 ...

念其蔚蓝
26分钟前
57
0
如何创建spring-boot的web项目

第一步:新建一个maven项目 新建项目,选择maven 填写GroupId和ArtifactId 下一步默认即可,直接点击finish 创建完成后项目结构如下 第二步: 配置pom.xml 在pom.xml中添加如下代码: <p...

幻境fairy
48分钟前
46
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部