java基础总结1

来源:互联网 发布:金融互换 知乎 编辑:程序博客网 时间:2024/05/07 17:52

Java的特性

简单性

面向对象

分布式

解释性

健壮性

安全性

结构中立

可移植性

–多线程,动态性,高性能

 

 

•   应用平台

JavaSE是java平台的标准版本,主要应用于桌面应用软件的开发

•  Java Platform, Standard Edition

JavaEE是java平台的企业版,主要用于分布式的企业级的服务器端的应用程序开发

•  Java Platform, Enterprise Edition

JavaME是java平台的微小版本,主要是用于移动设备上嵌入式系统的应用开发

JavaPlatform, Micro Edition

标识符:

     由字符,数字,$,_组成,以字符或"_"开头,不能以数字开头,长度无限制


基本的数据类型(Primitive type)

•   整数

短整数(short)(占2个字节)

整数(int)(占4个字节)

长整数(long)(占8个字节)

•   字节

专门储存位数据  byte

占一个字节

•   浮点数

单精度浮点数(float)(占4个字节)

双精度浮点数(double)(占8个字节)

•   字符

采Unicode编码  char

前128个字符编码与ASCII编码兼容

每个字符数据类型占两个字节

可储存的字符范围由'\u0000'到'\uFFFF'

•   布尔数

占内存2个字节 boolean

可储存true与false两个数值

 

 

逻辑、位运算

•   「且」(&&)、「或」(||)、「反相」(!

•   &(AND)、|(OR)、^(XOR)与~(补码)

•   ^(XOR)加密

•   左移(<<)、右移(>>)、>>>运算符

j>>>i 与 j/(int)(Math.pow(2,i))的结果相同,其中i和j是整形。

 

 

指定运算符

范  例

结  果

+=

a += b

a = a + b

-=

a -= b

a = a - b

*=

a *= b

a = a * b

/=

a /= b

a = a / b

%=

a %= b

a = a % b

&=

a &= b

a = a & b

|=

a |= b

a = a | b

^=

a ^= b

a = a ^ b

<<=

a <<= b

a = a << b

>>=

a >>= b

a = a >> b

 

判断语句:

if(条件)

    语句句一;

else

    语句句二;

 

switch(erp) {

     case符合数字或字符:

         语句句一;

         break;

     case符合数字或字符:

         语句句二;

         break;

     default:

         语句三;

  }

注:erp是变量名称或表达式,且只能是int,short,char和byte,long和String都不能作用于switch

循环语句:

for(初始式;判断式;递增式) {
语句句一;

     语句句二;

}

注:for循环主要用于按预定的次数执行语句或语句块


while(测试条件){

            //当测试条件为true时被执行

}

注:只要指定的条件评估为true,while循环则执行一个语句或一组语句


do { 

  //当测试条件为true时被执行

} while(测试条件);

注:do-while循环执行某些语句。直到指定的条件为真。此循环确保循环体至少执行一次


break可以离开目前switch、for、while、dowhile的区块

continue只会结束其之后区块的语句句,并跳回循环区块的开头继续下一个循环

 return用于结束(终止)方法的执行

 

一维数组

    声明格式:

             数据类型 数组名;或数据类型[]  数组名

             int[] array[];

             String[] strs;

    声明数组:

             数组名 = new 数组元素类型[元素个数];

             int[] array=new int[10];

•    指定的索引值不可超出数组范围

–  会发生ArrayIndexOutOfBoundsException

•    length为数组对象的属性成员

 

 

Arrays类

名  称

说  明

sort()

帮助您对指定的数组排序,所使用的是快速排序法

binarySearch()

让您对已排序的数组进行二元搜寻,如果找到指定的值就传回该值所在的索引,否则就传回负值

fill()

当您配置一个数组之后,会依数据型态来给定默认值,例如整数数组就初始为 0,您可以使用Arrays.fill()方法来将所有的元素设定为指定的值

equals()

比较两个数组中的元素值是否全部相等,如果是将传回true,否则传回 false

 

 

foreach与数组

•    加强的for循环(Enhanced forLoop)

for(type element : array) {

      System.out.println(element)....

}

•    二维数组

int[][] arr = {{1, 2, 3},

               {4, 5, 6},

               {7, 8, 9}};

for(int[] row : arr) {

    for(intelement : row) {

       System.out.println(element);

    }

}

 

 

String类

•    字符串必须使用“”来包括您的文字

•    字符串的字符是使用Unicode字符来建构

字符串的串接在Java中可以直接使用'+'

 

方  法

说  明

Byte.parseByte(字符串)

将字符串剖析为位

Short.parseShort(字符串)

将字符串剖析为short整数

Integer.parseInt(字符串)

将字符串剖析为int整数

Long.parseLong(字符串)

将字符串剖析为long整数

Float.parseFloat(字符串)

将字符串剖析为float浮点数

Double.parseDouble(字符串)

将字符串剖析为double浮点数

指定的字符串无法剖析为指定的数据型态数值,则会发生NumberFormatException

 

 

•    使用索引取得字符的相关方法

方  法

说  明

char charAt(int index)

传回指定索引处的字符

int indexOf(int ch)

传回指定字符第一个找到的索引位置

int indexOf(String str)

传回指定字符串第一个找到的索引位置

int lastIndexOf(int ch)

传回指定字符最后一个找到的索引位置

String substring(int beginIndex)

取出指定索引处至字符串尾端的子字符串

String substring(int beginIndex, int endIndex)

取出指定索引范围子字符串

char[] toCharArray()

将字符串转换为字符数组

 

 

StringBuilder类

•    使用‘+’来串接字符串以达到附加新字符或字符串的目的,但‘+’会产生一个新的String实例

•    不建议使用'+'来进行字符串的串接

 

使用正则表示式

 

•    几个常用的字符比对符号

方  法

说  明

.

符合任一字符

\d

符合0到9任一个数字字符

\D

符合0-9以外的字符

\s

符合'\t'、'\n'、'\x0B'、'\f'、'\r'等空格符

\w

符合a到z、A到Z、0到9等字符,也就是数字或是字母都符合

\W

符合a到z、A到Z、0到9等之外的字符,也就是除数字与字母外都符合

•    Character class

范  例

作  用

[abc]

符合a、b或c

[^abc]

符合「a或b或c」之外的字符

[a-zA-Z]

符合a到z或者是A到Z的字符

[a-d[m-p]]

a到d或者是m到p,也可以写成[a-dm-p]

[a-z&&[def]]

a到z并且是d或e或f,结果就是d或e或f可以符合

[a-z&&[^bc]]

a到z并且不是b或c

[a-z&&[^m-p]]

a到z并且不是m到p

 

 

•    Greedy quantifiers

范  例

作  用

X?

X可出现一次或完全没有

X*

X可出现零次或多次

X+

X可出现一次或多次

X{n}

X可出现n次

X{n,}

X可出现至少n次

X{n, m}

X可出现至少n次,但不超过m次

X?

X可出现一次或完全没有

 

Pattern、Matcher

 

 

 

 

关于this

•    使用参考名称来呼叫对象的方法成员时,程序会将对象的参考告知方法成员

•    在方法中所撰写的每一个数据成员其实会隐含一个this参考名称

•    this名称参考至呼叫方法的对象

 

static

•    被宣告为“static”的数据成员,又称「静态数据成员」

•    静态成员是属于类别所拥有,而不是个别的对象

•    可以将静态成员视为每个对象实例所共享的数据成员

•    静态方法中不会有this参考名称

•    静态方法中不允许使用非静态成员

在静态方法中不能呼叫非静态方法

 

 

 

Object类别

•    Object是Java程序中所有类别的父类别

•    每个类别都直接或间接继承自Object类别

clone()方法

•    如何复制对象本身

•    最基本的作法:实作java.lang.Cloneable界面(Interface)

 

 

 

  

成员内部类别、区域内部类别

•    区域内部类别定义于一个方法中,类别的可视范围与生成之对象仅止于该方法之中

•    内部类别还可以被宣告为"static“

•    由于是“static”,它不能存取外部类别的方法,而必须透过外部类别所生成的对象来进行呼叫

匿名内部类别

•    内部匿名类别可以是继承某个类别或是实作某个接口

•    注意如果要在内部匿名类别中使用外部的局部变量,变量在宣告时必须為"final"

•    局部变量x并不是真正被拿来于内部匿名类别中使用

•    x会被匿名类别复制作为数据成员来使用

•    编译程序会要求您加上“final”关键词,这样您就知道不能在内部匿名类别中改变x的值

•    内部匿名类别在编译完成之后会产生「外部类别名称$编号.class」,编号为1、2、3...n,每个编号n的档案对应于第n个匿名类别

import静态成员

import static java.lang.System.out;

 

 

取得系统的时间,可以使用

System.currentTimeMillis()方法

 

•    对日期时间作格式设定,则可以使用java.text.DateFormat来作格式化

        Datedate = new Date();

       DateFormat dateFormat =

            newSimpleDateFormat("EE-MM-dd-yyyy");

       

       System.out.println(dateFormat.format(date));

 

•    直接使用DateFormat上的静态getDateTimeInstance()方法来指定格式

 

Date date = new Date();

       //简短信息格式

       DateFormat shortFormat =

           DateFormat.getDateTimeInstance(

                DateFormat.SHORT,DateFormat.SHORT);

       //中等信息格式

       DateFormat mediumFormat =

           DateFormat.getDateTimeInstance(

                DateFormat.MEDIUM,DateFormat.MEDIUM);

       //长信息格式

       DateFormat longFormat =

           DateFormat.getDateTimeInstance(

                DateFormat.LONG,DateFormat.LONG);

       

       //详细信息格式

       DateFormat fullFormat =

           DateFormat.getDateTimeInstance(

                DateFormat.FULL,DateFormat.FULL);

       System.out.println("简短信息格式:" +

                     shortFormat.format(date));

       System.out.println("中等信息格式:" +

                     mediumFormat.format(date));

       System.out.println("长信息格式:" +

                      longFormat.format(date));

       System.out.println("详细信息格式:" +

                      fullFormat.format(date));

简短信息格式:2005/6/6下午10:19

中等信息格式:2005/6/6下午10:19:13

长信息格式:2005年6月6日 下午10时19分13秒

详细信息格式:2005年6月6日 星期一 下午10时19分13秒GMT+08:00

 

 

控制字符

作用

\\

反斜杠

\'

单引号'

\"

双引号"

\uxxxx

以16进位数指定Unicode字符输出

\xxx

以8进位数指定Unicode字符输出

\b

倒退一个字符

\f

换页

\n

换行

\r

游标移至行首

\t

跳格(一个Tab键)

 

 

•   若是使用J2SE5.0或更高的版本

        //输出19的十进制表示

        System.out.printf("%d%n",19);

        //输出19的八进制表示

        System.out.printf("%o%n",19);

        //输出19的十六进制表示

        System.out.printf("%x%n",19);

 

格式字符

作  用

%%

在字符串中显示%

%d

以10进位整数方式输出,提供的数必须是Byte、Short、 Integer、Long、或BigInteger

%f

将浮点数以10进位方式输出,提供的数必须是Float、Double或 BigDecimal

%e, %E

将浮点数以10进位方式输出,并使用科学记号,提供的数必须是Float、 Double或BigDecimal

%a, %A

使用科学记号输出浮点数,以16进位输出整数部份,以10进位输出指数部份,提供的数必须是Float、Double、BigDecimal

%o

以8进位整数方式输出,提供的数必须是Byte、Short、 Integer、Long、或BigInteger

%x, %X

将浮点数以16进位方式输出,提供的数必须是Byte、Short、 Integer、Long、或BigInteger

%s, %S

将字符串格式化输出

%c, %C

以字符方式输出,提供的数必须是Byte、Short、Character或 Integer

%b, %B

将"true"或"false"输出(或"TRUE"、"FALSE",使用 %B)。另外,非null值输出是"true",null值输出是"false"

%t, %T

输出日期/时间的前置,详请看在线API文件