论坛首页 入门技术论坛

java笔记(03,java语法和一些应该注意的问题)

浏览 1628 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-04-05  

java作为一个类C语言,和C语言的语法基本相同,所以对于有C语言基础的同学,入门可以说非常快。下面我们就说说学习java时一些应该注意的问题吧:

字符串数据和任何数据使用+都是相连接,最终都会变成字符串。

"5+5="+5+5   运行结果是:5+5=55

"5+5="+(5+5)  运行结果是:5+5=10

 转义字符:通过“\”来转变后面字母或者符号的含义。

\n:换行;\b:退格;\t:制表符;\r:按下回车;Windows回车符是由两个字符来表示的。\r\n

system.out.println("\"hah\"")  结果:"hah"

char a='';

==”是比较运算符;结果:truefalse

逻辑运算符用于连接boolean类型的表达式。x>3 & x<6

^:异或;两边都相同为假;反之为真;

&&&的区别:&:无论左边是真是假;右边都运算;

&&:当左边为假时右边不用算。

||:左边为真。右边不用算。

位运算符:

<<:其实就是乘以2的移动的位数次幂;

>>:就是除以2的移动的位数次幂;

>>:带符号右移。看最高位

>>>:无符号右移。最高位都用0

位运算符&:转换为二进制再计算。

~:反码(~6=-7

一个数异或同一个数两次结果还是那个数。(加密)

位运算是高效的运算!

有局限的:

n=m+n;

m=n-m;

n=n-m ;

技巧:

x=x^y;

y=x^y;

x=x^y;

简单:

temp=x;

x=y;

y=temp;

 

switch的特点:支持四种类型:byte  short  int  char ,casedefault的顺序是先执行第一个case,没有匹配的才执行default。结束switch的两种情况:遇到break和执行到switch的最后一个花括号。

ifswitch语句很像,具体什么场景下应使用那个语句呢

如果判断的具体数值不多,而是符合byte short int char这四种类型。

虽然两个语句都可以使用,建议使用switch语句,效率比较高。

其他情况:对区间,对结果为布尔类型(boolean)的判断,使用ifif的使用范围更广。

 

JDK的升级:7.0可以判断字符串5.0可以判断枚举类型。

 

各种类型在java中占多少个字节呢?

1.boolean 类型视编译环境而定;

2.byte ,boolean:1字节 byte:-128~127 boolean:true false;

3.char,short: 2字节 char:0~2^16-1 short:-2^15~2^15-1;(c语言中char1个字节

4.int,float:4字节 int:-2^31~2^31-1 float:1.4013E-45~3.1028+38;

5.long,double:8字节  long:-2^63~2^63-1 

                       double:4.9E-324~1.7977E+308;

(1字节=8bit 即在计算机中用801表示一个单位。

 

 

byteshortintchar型进行运算时,都是转换为int。如char c ='a'; int d = c + 20;这种会先把c转换为int即转换为c对应的ASCII码进行运算。float会转换成double型。还有就是数据“类型小的”跟数据“类型大的”想运算时,会把小的数据类型转换为数据类型大的然后运算。如:long big = 100int small = 100; long sum = big + small;运算时会先把small转换为long型的然后运算。

转换顺序:

byte->(shortchar ->int->long->float->double

 

多种类型数据混合运算时,系统首先将所有数据类型转换为容量最大的那种数据类型再计算。

 java中涉及byteshortchar类型数据的运算,首先会把这些数据转换为int型,计算结果是int型数据。例如两个byte型相加结果是int

 char型数据向整型转换时,是转换为对应的ASCII代码值。

 char c=c’; int i=cSystem.out.println("i="+i);  结果i=99

 byteshortchar三种数据是平级的,之间的转换要用强制转换

 

 

*for while 的区别:

作用域的区别;控制次数用for

注意:用for能写出来的用while的也能写出来。

变量有自己的作用域,对于for如果将循环增量由于控制定义在for语句中。

该变量只在for语句内起作用。for执行完毕就释放;

总结:当某些语句执行很多次时就用循环语句;

 

*两种最简单的无限循环模式:

while(ture){}

for(;;){}//默认是ture

*尖朝上,改变条件,让条件随着外循环变化;

 尖朝下,改变初始化值,让初始化随着外循环变化;

#####

####*

###**

##***

#****

*****

   for (int i = 0 ;i<7 ;i++ )
   {
   	for (int j = i;j<7 ;j++ )
   	{
   		System.out.print("#");
   	}
   	for (int k = 0;k<i ;k++ )
   	{
   		System.out.print("*");
   	}
   	System.out.println();
   }

 

*记住:

1.breakcontinue语句的范围;

2.breakcontinue单独存在时.下面可以有任何语句.因为都执行不到,那样的话系统会提示出错了.

3.continue只作用于循环结构(loop).

4.break作用于switchloop

 

void:函数没有具体返回值类型的情况.

当函数的返回值类型为void,函数中的return可以省略不写,写上也不错.

 

重载(overload)和参数列表有关;

什么时候用重载:

1,当定义的功能相同,但参与运算的未知内容不同.(注意:重载和返回值类型没有关系。重载只和函数名有关。)

那么,这时候就定义一个函数名称以表示其功能.方便阅读.通过含参数列表不同来区别同名的函数;

 

比如:

    void show(int x){}

    int show(char y,double z){}  //重载了。

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics