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文件
- java基础总结1
- java基础总结---1
- Java基础总结 1
- java基础总结1
- 基础总结-Java基础(1)
- JAVA总结的基础(1)
- Java基础加强总结(1)
- java基础面试总结1
- Java入门基础总结(1)
- java基础学习总结-1
- Java 基础易错点总结1
- 1-1.java基础总结
- java/android基础总结1
- java基础语法总结1
- JAVA基础总结(1)
- Java基础总结(1)
- java基础总结(1)
- java程序基础总结1
- DLL
- Replaced Elements(可置换元素)
- JAVA面试题解惑系列(十)——话说多线程
- 冰峰王座完整的语音英文+中文解释!(修订版)
- object-c多线程
- java基础总结1
- String.valueOf() 方法的使用
- JAVA面试题解惑系列(十一)——这些运算符你是否还记得?
- ibatis一对多映射
- 函数指针
- Xml中SelectSingleNode方法中的xpath用法
- 使用Secure CRT 输出一个hello world!
- 2012-07-05-hive执行流程分析【应整理到一起】
- Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??错误