一、一个简单的Java应用程序
public class FirstSample
{
public static void main(String[] args)
{
System.out.println("We will not us 'Hello,World'");
}
}
输出为:
We will not us ‘Hello,World’
1:类名以大写字母开头,如果由多个单词组成,每个单词第一个字母大写。称 为驼峰命名法。
2:源代码的文件名必须和公共类的名字相同,并用java做扩展名。
二、数据类型
1、整型
类型 | 存储需求 | 取值类型 |
---|---|---|
byte | 1字节 | -128~127 |
short | 2字节 | -32768~32767 |
int | 4字节 | -2147483648~2147483647 |
long | 8字节 | -9223372036854775808~9223372036854775807 |
long类型最后要加l
十六进制数值有一个前缀0x或0X
八进制数值有一个前缀0
二进制数值有一个前缀0b或0B
2、浮点类型
类型 | 存储需求 | 取值类型 |
---|---|---|
float | 4字节 | 大约3.40282347E+38F(有效数字为6~7) |
double | 8字节 | 大约1.79769313486231570E+308(有效数字为15位) |
3、char类型
char类型原本用于表示单个字符,现在情况有所变化。有些Unicode字符可以用一个或两个char值描述。
char类型的字面量值要用单引号括起来。例如,‘A’是编码值为65所对应的字符常量。它与“A”不同,“A”是包含一个字符A的字符串。
码点:指与一个编码表中某个字符对应的代码值。
代码单元:存储空间单位
4、boolean类型
boolean(布尔)类型有两个值:false和true,用来判定逻辑条件。
三、变量
在java中,每个变量都有一个类型。在声明变量时,变量的类型位于变量名之前。声明一个变量后,必须用赋值语句对变量进行显式初始化。
在Java中,利用关键字final指示常量。例如:
public class FirstSample
{
public static void main(String[] args)
{
final double CM_PER_INCH=2.54;
double paperWidth=8.5;
double paperHeight=11;
System.out.println("Paper siza in centimeters:"
+paperWidth*CM_PER_INCH+"by"+paperHeight*CM_PER_INCH);
}
}
final
- 防止指令重排序
- 线程安全
- 阻止继承
四、运算符
1、数值类型之间的转换
2、强制类型转换
double x=9.997;
int nx=(int) x;
这样,变量nx的值为9。
3、结合赋值和运算符
x+=4;等价于x=x+4;
4、自增与自减运算符
public class Qaz
{
public static void main(String[] args)
{
int a=10;
if(a++==10)
{
System.out.println("先判别,再加");
}
else
{
System.out.println("先加,再判别");
}
if(++a==10)
{
System.out.println("先判别,再加");
}
else
{
System.out.println("先加,再判别");
}
}
}
输出为:
先判别,再加
先加,再判别
5、关系和boolean运算符
- &&:逻辑与
- ||:逻辑或
- !=:不等于
- 三元运算符
condition?expression1:expression2
如果条件为true,表达式就为第一个表达式的值,否则计算为第二个表达式的值。
6、位运算符
- &(”and“)
- | (”or”)
- ^ (“xor”)
- ~(“not”)
public class Qaz
{
public static void main(String[] args)
{
int a=23;
int b=45;
int s1=a&b;
int s2=a|b;
int s3=a^b;
int s4=~a;
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
System.out.println(s4);
}
}
输出结果为
5
63
58
-24
a=23,转化为二进制是00010111
b=45,转化为二进制是00101101
&是按位取“与”,结果为00000101,即为5
|是按位取“或”,结果为00111111,即为63
^是按位取“异或“(即相同取0,不同取1),结果为00111010,即为58
~是按为取反,即为11101000,反码10010111,加1后得10011000,即为-24
另外,还有>>和<<位运算符见模式左移或右移。
public class Qaz
{
public static void main(String[] args)
{
int a=23;
int b=a<<3;
int c=a>>2;
System.out.println(b);
System.out.println(c);
}
}
输出结果为:
184
5
a=23;转化为二进制为00010111,左移三位是10111000(int类型为32位,这里只写了后八位),即为184。右移两位是00000101,即为5。
>>>
运算符会用0填充高位,这与>>不同,它会用符号位填充高位。
7、括号与运算符级别
运算符 | 结合性 |
---|---|
[ ] . ( )(方法调用) | 从左向右 |
! ~ ++ – +(一元运算符) -(一元运算符()(强制类型转换)new | 从左向右 |
*/% | 从左向右 |
+ - | 从左向右 |
<< >> >>> | 从左向右 |
< <= > >= instanceof | 从左向右 |
== != | 从左向右 |
& | 从左向右 |
^ | 从左向右 |
| | 从左向右 |
&& | 从左向右 |
|| | 从左向右 |
?: | 从左向右 |
= += -= *= /= %= &= | = ^= <<= >>= >>>= | 从右向左 |
例如a+=b+=c等价与a+=(b+=c)