java语言 U_Java语言的基础

Java语言的基础

转义字符:

\n

回车(\u000a)

\t

水平制表符(\u0009)

\b

空格(\u0008)

\r

换行(\u000d)

\f

换页(\u000c)

\'

单引号(\u0027)

\"

双引号(\u0022)

\\

反斜杠(\u005c)

\ddd

三位八进制

\udddd

四位十六进制

字符串类型,是用String表示的类型,①直接赋值,如:Stringstr=”hello”(直接存储在栈里,寻找具有hello的字符串,如果已经有则直接指向hello,如果没有过就开辟一个hello空间);②用new创建字符串对象,如:String str=new String(” hello”)(每创建一个new对象,就在堆中开辟一个对象空间,栈中的地址指向堆的内容);

引用类型:类类型,接口类型,数组类型

定义:引用类型的值是指向内存空间的引用,就是地址,变量引用(地址)存在栈中,而对象存在堆中。

引用数据类型包括:类,数组,接口

基本数据类型和引用类型的区别主要在于基本数据类型的`量和内容是分配在栈上的,而引用类型的量被分配在栈内存里,而真正内容是分配在堆上的,栈通过指针指向堆上的内容。

实例:我们分析一下”==“和equals()的区别。

①定义两个string对象(引用类型)

stringa="abc"; //a指向堆中一个对象的地址

string b="abc"; //b指向堆中另一个对象的地址

然后

if(a==b){system.out.println("a==b");}

else

{system.out.println("a!=b");}

程序输出a!=b

原因:a和b的地址是不相同的,a==b比较的是两个变量的地址,所以地址不相等;

②定义两个基本类型

int a=4;

int b=4;

if(a==b){system.out.println("a==b");}

else

{system.out.println("a!=b");}

输出:a==b

原因:==比较的是两个变量的内容

结论:不论是基本数据类型还是引用类型,他们都会先在栈中分配一块内存,对于基本类型来说,这块区域包含的是基本类型的内容;而对于对象类型来说,这块区域包含的是指向真正内容的指针,真正的内容被手动的分配在堆上

User user; .栈区 局部变量

UserDAOuserDao; .方法区 静态成员变量

User[] users; .堆区 实例变量

类型转型:自动类型转换和强制类型转换

自动类型转换:由低精度类型向高精度数据类型的转换,如:bytebt=5;int it=bt;

强制类型转换:与自动转换相反,如:inti=16;byte bt=(byte)i;

相等性测试:==和equals()

1.4操作符(运算符)

分类:算术运算符,布尔运算符,关系运算符,位运算符,赋值运算符,条件运算符,字符串运算符,逗号运算符,其他运算符;

①算术运算符:

单目:+ (取正) - (取负) ++ (自增1) - - (自减1),如:i=0,j=0; j=i++(i=0,j=1);j=++i(i=1,j=1)

双目:+ - * / %(取余)

三目:a>b?true:false

说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"

②关系运算:

= =(等于),!= (不等于),> (大于),< (小于), >= (大于等于) ,<= (小于等于)。

③位运算符:

位运算符 与(&)、非(~)、或(|)、异或(^)

&:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000

| :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110

~:0变1,1变0 。如~1010=0101

^:两边的位不同时,结果为1,否则为0.如1100^1010=0110

④逻辑运算符:

与(&&)、非(!)、或(||)

⑤赋值运算符:

= += -= *= /= %= &= ^= |= <<= >>=

⑥其他

运算符优先级

按优先级从高到低排列如下:[ ] ( ) ++ -- ! ~ instanceof * / % + - << >>>>> <> < = > \ == != &^& & || ? := op= 。(口决:算关位逻赋)。

注:instanceof:测试某个对象是否是指定类或其子类的实例,。是Java的一个二元操作符,Java的保留关键字;作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。可以用在继承中的子类的实例是否为父类的实现。instanceof 一般情况下用在对象类型的强制转换。如:if(myObjectinstanceofMyClass){MyClassanothermyObject=(MyClass)myObject;…}是判定myObject是否是MyClass的实例或是其子类的实例。

<

>>:右移(带符号)

>>>:添零右移

没有必要去记忆运算符号的优先级别,在编写程序时可尽量的使用括号来实现你想要的运算次序,以免产生难以阅读或含糊不清的计算顺序.运算符的结合性决定了并列相同级别的运算符的先后顺序,例如,加减的结合性是从左到右,8-5+3 相当于(8-5)+3.逻辑否运算符的结合性是右到左, x 相当于!(!x).表3.4是Java所有运算符的优先级和结合性。

当运算符进行数值运算时,结果类型默认高精度者,如:longa=1.23456,float b=2.123, c=a+b,c为long型。

1.5表达式

指用运算符连接起来的符合Java 规则的式子,如:c=a+b

1.6语句

赋值语句:

流程控制语句:

判断语句(if三种语句,switch语句)

① 简单if条件语句,描述:当表达式返回true 时,执行语句1(或语句块);当表达式返回false 时,直接执行下面的语句。如:if ( x>90 ) System.out.println("Good!");

② if…else…语句,描述:当布尔表达式返回true 时执行语句块1,否则执行语句块2;如:if (x>60)

System.out.println("Pass!");

else

System.out.println("No pass!");

③ if…else if…语句,描述:多分支语句,如:

int score;

char grade;

score=Integer.parseInt(args[0]);

if (score>=90)

grade=’A’;

else if(score>=80)

grade=’B’;

else if (score>=70)

grade=’C’;

else if (score>=60)

grade=’D’;

else

grade=’F’;

System.out.println("Score="+score+" Grade="+grade);

④ switch语句:描述:适合于用某个值来检测一个变量是否符合某个条件;

switch(条件表达式){

case 常量表达式1:

语句块1;

break;

case 常量表达式n:

语句块n;

break;

default:

语句块n+1;

break;

如:int week=3;

Switch(week){

Case 1:

System.out.println(“星期一”);

Break;

Case 2:

System.out.println(“星期二”);

Break;

Case 3:

System.out.println(“星期三”);

Break;

default:

System.out.println(“请输入有效数字!”);

}

循环语句(for语句,while语句,dowhile语句)

for语句:

for(初始化语句;循环条件;迭代语句){

语句序列(循环体)

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值