Java语言基础
一、数据类型种类:
1、Java中主要有基本数据类型(int、float、char、boolean等)和复合数据类型(数组、类、接口等)。
类型 | 描述 | 初始值 |
byte | 8位符号整数,-128—127;八进制前导符:0;十六进制前导符:0x | (byte)0 |
short | 16位符号整数 | (short)0 |
int | 32位符号整数 | 0 |
long | 64位符号整数 | 0L |
float | 32位单精度浮点数 | 0.0f |
double | 64位双精度浮点数 | 0.0d |
Boolean | 布尔型只有两个值 真(true)、假(false) | false |
char | 16位字符 | '\u0000' |
2、标识符和关键字
(1)标识符:函数名字、类名、变量名、常量名、对象名、标号名、类型名等
(2)关键字:系统已预定义的单词,属于保留字,用户不可再重新定义。
3、常量
(1)Java的转义符:
转义序列 | 含义 |
\n | 回车(\u000a) |
\t | 水平制表符(\u0009) |
\b | 空格(\u0008) |
\r | 换行(\u000d) |
\f | 换页(\u000c) |
\' | 单引号(\u0027) |
\" | 双引号(\u0022) |
\\ | 反斜杠(\u005c) |
\ddd | 三位八进制 |
\udddd | 四位十六进制 |
(2)final变量:final终值变量赋值后,在程序中不再改变。
final float PI = 3.1415926;
final boolean DEBUG = false;
final int COUNT = 30;
(3)字面量 – 可以是任何数字,文本或者其他信息,直接代表一个值。主要有数字常量、字符常量、字符串常量等
数字字面量
long类型 数字后加L eg: 4159L
八进制 数字前加0 eg: 0173 = 1x8x8 + 7x8 + 3=123
十六进制 数字前加0x eg: 0x7B = 7x16 + 11=123
float类型 数字后加F(f) eg: 4159F
布尔字面量:true,false
字符字面量:16位Unicode支持上千个字符;ASCII:’a’, ‘A’, ‘# ’, ‘5’ ;
字符串字面量:String example = “Lee asked, \”how are you doing?\””;
4、变量 – 程序在运行时能够储存信息的内存空间
● 变量命名
以字符,_, $ 开头,之后可以包含任何字母和数字的组合
变量名的第一个字母用小写
变量名中每一个后继的单词用一个大写字母开头
其他所有的字母都用小写
关键词不能用做变量名,并且不能以数字开头。
● 变量定义和声明
int Sum=0;
5、Java中数据类型的转换规则:
① 不同类型的数据混合运算时,系统自动将数据从低级转换到高级(域小的自动转化为域大的数据类型)。
byte a=20; short b=30;
byte a=20; short b=30;
int X=a+b; 域小的自动转化为域大的数据类型
程序例:
class Convention
{ public static void main( String args[ ] )
{ byte bByte = 2;
char cChar = 'c';
int nInt = 10;
float fFloat = 3.5f;
double dDouble = 1.234;
float fFloatNew = fFloat + bByte; //float OP byte ->float
int nIntNew = cChar + nInt; //char OP int ->int
double dDoubleNew = fFloatNew/nInt; //float OP double ->double
}
}
② 高级的数据类型转换到低级时,必须强制进行数据类型转换。
int a=20;
byte b=(byte)a; //域大者转换为域小者,则应强制转换
要点
Java中不支持C/C++中的指针(基于安全性考虑)、结构(将类与结构统一,只要类中不包含有方法的定义,便是结构)、联合与枚举等数据类型;无全局变量定义、数组越界为异常错误等。
练习:
1.Which of the following is valid Java identifier?
a) my_id
b) lc%e
c) my-id
d) id101
e) 101id
f) synchronized
g) _id
h) %id
i) #id
j) $id
k) native
2. Which of the following are wrong:
a) 0666
b) xfff
c) 0s78
d) 0586
e) 0x339
f) 9.6e-50
g) 0xfga
h) 2000
i) 0796
j) -e-29
k) 0407
l) 0111
3. identify the data type of the following numbers:
a)55L b)’B’ c)470f d)345D e)076 f)0x76
二、Java中的运算符
1、概述:基本上与C/C++相同,但有个别的不同。
(1)操作符的优先级:标志运算符在表达式中的运算顺序
描述 | 操作符 |
最高优先级 | . [] () |
一元 | ~ ! ++ -- |
乘 | * / % |
加减(二元) | + - |
移位 | << >> >>> |
关系 | < <= >= > |
等于或不等于 | == != |
按位与 | & |
按位异或 | ^ |
按位或 | | |
条件与 | && |
条件或 | || |
条件(三元) | ?: |
赋值 | = |
(2)运算符的结合性:也是决定运算顺序的一种标志。
结合性:从左到右;从右到左(如单目、赋值等)
(3)典型的操作符
● 关系操作符:> >= < <= == !=
● 逻辑操作符:! & | ^ && ||
● 三元操作符(?:)
● 位操作符:
✓ 位操作符:按位与(&)、按位或(|)、按位异或(^)。
✓ 移位操作符:左移(<<)、带符号右移(>>)、不带符号右移(>>>)。
(4) 新增 instanceof(关系运算符):识别某对象是否为某类的对象。
void Cook(Person man)
{ if(man instanceof Chinese) //如果识别是中国人则按照中国人的习惯来Cook
{
}
else if(man instanceof American) //如果识别是美国人则按照美国人的习惯来Cook
{
}
}
(5)改造“+”运算符:使其能够适应字符串运算:System.out.println("How Are"+"You !");
1. 表达式和运算符
● 算术运算符:+, -, *, /, %
除法时,若将结果保留在一个整数里,结果将向下取整,如 int x = 31/9,则x = 3
%产生一个除法操作的余数,如 31%9 = 4
● 赋值运算符:
表达式 含义
x += y x = x + y
x -= y x = x - y
x *= y x = x * y
x /= y x = x / y
● 增量和减量运算符:
表达式 含义
x = y++ x = y , y = y + 1
x = y--- x = y , y = y - 1
x = ++y y = y + 1 ,x = y + 1
x = ---y y = y -1 ,x = y - 1
● 比较运算符:==, !=, <, >, <=, >=
● 逻辑运算符: &(&&), |(||), ^, !
● 字符串运算: +, +=
● 位运算符:>>,<<,<<<, &, |, ^
eg: 1) 00000000 00000000 00000000 00111111<< 3 的值为
00000000 00000000 00000001 11111000 = 504 (右边加0);
2) 00000000 00000000 00000000 00111111>> 3 is
00000000 00000000 00000000 00000111 = 7 (最左边为0时,左边加0)
3) 11111000 00000000 00000000 01111010 >> 3 is
11111111 00000000 00000000 00001111 (最左边为1时,左边加1) 4) 11111000 00000000 00000000 01111010 >>> 3 is
00011111 00000000 00000000 00001111 (左边永远加0)
注意事项:
1) 被操作数必须是int或long, byte和short要化做int
2) 被操作数是int时, 操作数不得大于32,否则取其modulo;
3) 被操作数是long时, 操作数不得大于64,否则取其modulo;
程序例
public class BitwiseDemo
{ static final int VISIBLE = 1; //二进制位为:00000001
static final int DRAGGABLE = 2; //二进制位为:00000010
static final int SELECTABLE = 4; //二进制位为:00000100
static final int EDITABLE = 8; //二进制位为:00001000
public static void main(String[] args)
{ int flags = 0; //00000000
flags = flags | VISIBLE;
// 00000000
// 00000001 此时Flags=00000001
flags = flags | DRAGGABLE;
// 00000001
// + 00000010 此时Flags=00000011
if ((flags & VISIBLE) == VISIBLE)
{
// 00000011
// * 00000001 结果flags=00000001java64位
if ((flags & DRAGGABLE) == DRAGGABLE)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论