java总结一入门
一、java语句规则:
//public class这些称为保留字(关键字)
// ‘//’和‘/**/’为注释,//为单行注释,/**/为多行注释
public class Welcome {//定义类 Welcome被称为标识符
public static void main(String[] args) {//主方法(main方法)
System.out.println();//语句
}
}
说明:1、多行注释还有/**……*/,这种主要是为支持JDK 工具javadoc而采用的。
2、标示符只能以大小写字母或者美元符号或者下划线开头,不能以数字开头。不能用关键字。命名要符合一定的规则,如驼峰规则。
二、数据基本类型:
boolean b = false;//长度:1位 取值范围:true false
byte c = 0;//长度:8位 取值范围:-128~127
char ch = '\u0000';//长度:16位 取值范围:‘\u0000’~’\uffff’即0~65535
short s = 0;//长度:16位 取值范围:-32768~32767
int i = 0;//长度:32位 取值范围:-2^31~2^31-1
long l = 0L;//长度:64位 取值范围:-2^63~2^63-1
float f = 0.0f;//长度:32位 取值范围:+-1.4E-45 或+-3.4028235E+38
double d = 0.0;//长度:64位 取值范围:+-4.9E-324 或+-1.797693134862315E+308
说明:String不是基本数据类型,它被定义为类,属于引用数据类型。java定义了特殊操作,可以直接引用。String s = "hello";
三、引用类型
public class Demo {
public static void main(String[] args) {
int i ;
i = 23;//直接赋值
Data d = new Data();//分配空间
d.year = 2016;//再赋值
}
}
说明:引用类型不分配空间(new),就不能直接给它赋值
四、变量和常量
public class Demo {
public static void main(String[] args) {//i的使用范围——开始
int i= 6,b=7,c;//变量定义
long l = i;//低精度可以赋给高精度
long l2 = (long)i;//低精度可以强制转换为高精度
final int fi=1;//定义常量 值不可更改
}//i的使用范围——结束
}
说明:默认类型为64 位double 双精度类型(D 或d),数字后面加F 或f 则是32 位float
五、运算符
1、赋值运算符
= 、+=、-=、*=、%=、/=(左右必须属于同种或者能转换的数据类型)
2、算数运算符
一元++(自加)、--(自减)
二元+(加)、-(减)、*(乘)、/(除)、%(取余数)
3、关系运算符(比较是否相等,返回true或false)
== != < <= >= >
4、条件运算符(满足某个条件就是什么结果)
格式条件表达式 ? 表达式2 :表达式3
形如 a>b?a:b 如果a大于b则是a,相反则是b
5、逻辑运算符
~ 按位非(NOT)(一元运算)
& 按位与(AND)
| 按位或(OR)
^ 按位异或(XOR)
>> 右移
>>> 右移,左边空出的位以0填充 ;无符号右移
<< 左移
&= 按位与赋值
|= 按位或赋值
^= 按位异或赋值
>>= 右移赋值
>>>= 右移赋值,左边空出的位以0填充 ;无符号左移
<<= 左移赋值
6、流程控制语句
流程控制
public class Demo {
public static void main(String[] args) {
int a=5,b=6;
//if else
if(a>b){
System.out.println("a>b");
}else{
System.out.println("a<b");
}
//if
if(a>b){
System.out.println("a>b");
}
//switch
switch(a){//一般switch里面是一个变量,根据不同值执行不同的case
case 5:System.out.println("a");break;//以break结尾
case 6:System.out.println("b");break;
default:System.out.println();break;//默认
}
}
}
循环语句
public class Demo {
public static void main(String[] args) {
int a=5,b=6;
//while
while(b>a){
//执行语句
}
//do while
do{
//执行语句
}while(b>a);
//for
for(int i=0;i<5;i++){
//执行语句
}
}
}
说明:while是满足条件就执行,只要进入执行语句就一直做判断一直执行直到不满足条件为止;do while是先执行再判断,看是否满足条件;for则是满足i<5则继续执行,i++则是每次执行就运行一次,i在递增。当如果要跳出循环可以使用break(跳出本循环)continue(跳过这次循环)return(跳出整个方法),Break语句和continue语句可以与标号联合使用。标号用来标识程序中的语句,标号的名字可以是任意的合法标识符。
7、字符串
常见用法
public class Demo {
public static void main(String[] args) {
String str = "test1";
String str2 = "test2";
String s = str+str2;//+操作,结果是test1test2
boolean b = str.equals(str2);//equals看两个是否相等,==查看引用是否相等
int i= str.length();//.length()是查看字符串长度
}
}
String ,StringBuffer ,StringBuilder 区别
String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)
说明:
String 类型和 StringBuffer 类型的主要区别其实在于性能方面,如果在实际操作中需要不断对某个字符串进行更改,建议优先考虑StringBuffer 。
Java.lang.StringBuffer线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。append 是在字串末尾加入,insert 则是从某个节点插入。
java.lang.StringBuilder 一个可变的字符序列是5.0新增的。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。在大多数实现中,它比 StringBuffer 要快。两者的方法基本相同。
八、数组
一维数组
public class Demo {
public static void main(String[] args) {
int a[] ; String s[] ; char []c ;//三种类型 数组声明
a=new int[3] ;//产生a[0] , a[1] , a[2] 三个元素
a[0]=8 ; a[1]=8 ; a[2]=8 ;
int i[]={4,5,010,7,3,2,9} ;//直接赋值
System.out.println(i.length);//.length查看数组长度
}
}
多维数组(二维举例)
public class Demo {
public static void main(String[] args) {
int d[][] ; // 定义一个二维数组
d=new int[3][4] ; // 分配3 行4 列数组内存
int a[][]=new int[2][] ;
a[0]=new int[3] ; // 第二维第一个元素指向3 个整型数
a[1]=new int[5] ; // 第二维第一个元素指向5 个整型数
int i[][]={{0},{1,4,5},{75,6},{8,50,4,7}} ; //定义和赋初值在一起,java第二维可以不等长
//可以这样定义数组
int a2[][]=new int[10][10];
int []a3[]=new int[10][10];
int [][]a4=new int[10][10];
}
}
说明:java中二维数组分配空间是第二维可以为空,但是第一维必须分配内存。