简单的Java程序
class A{
public static void main(String[] args) {
System.out,println(“ HelloWorld”);
}
}
class 后面跟的是类名
一个类中可以出现变量和函数的定义但是不能出现执行的语句
一般而言首字母大写的是类
public 公共的->访问权限 默认 protected private
static 静态的->函数类型
void 无返回值->无返回值类型 不代表没有return。函数有没有返回值取决于函数的功能
main 函数名->必须为main JVM只认main开头的主函数
String 字符串类->数据类型-类
[] 数组
args 参数名 这个可以改变 可以接受参数
参数存在的目的就是在运行程序时传入参数
System.out.println(args,length)
Java中的关键字和标识符
1.关键字
就是被高级编程语言赋予特殊含义的单词
break | ||||
case | const | |||
continue | ||||
float | ||||
goto | ||||
long | native | |||
new | ||||
throws | ||||
try |
2.标识符
用户自定义的名称包括
类名 函数名 变量名
命名规则:
1)只能由数字、字母、下划线、美元符组成
2)其中数字不能开头
3)必须是一个词
4)严格区分大小写
命名规范:
1)定义类名 所有单词首字母大写
UserName MyAge
2)定义函数名和变量名 除了第一个单词外其他单词首字母大写
myDog yourName
3)定义常量时 所有字母大写 单词之间用下划线区分
MAX_VALUE DEFAULT_AGE
java中的变量:
变量 可变化的数据
本质上是内存中(具体的进程空间中)的一个临时存储区域
该空间在内存中有真实的物理的地址(指针)
为了方便调用变量 为变量起名称 变量名
变量空间中永远存的是数据的地址
常量地址->常量池 计算机中的所有的都是图片。用16进制表示。ARGB
对象地址->堆内存
变量地址->同进程(指针变量)
变量中的数据是可变的 在同一类型下可变。
变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。
内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据
Java 两大数据类型:
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
基本数据类型
byte(字符型):byte 数据类型是8位、有符号的,以二进制补码表示的整数;默认值为0
short(短整型):short 数据类型是 16 位。默认值为0
int(整型):int 数据类型是32位,一般整型变量默认为整型。默认值为0.
Long(长整型):long 数据类型是 64 位,最值为(-2^63~2^63-1)默认值为0L。
Float(单精度型):float 数据类型是32位、默认值是 0.0f
Double(双精度型):double 数据类型是64 位,浮点数的默认类型为double类型默认值是0.0d
Boolean(布尔型):boolean数据类型表示一位的信息;只有两个取值:true 和 false,默认为false。
Char(字符型):char类型是一个单一的 16 位 Unicode 字符;最值为(\u0000 ~\uffff), char 数据类型可以储存任何字符;
引用类型
在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型。变量一旦声明后,类型就不能被改变了。
类、接口、对象、数组都是引用数据类型。
所有引用类型的默认值都是null。
一个引用变量可以用来引用任何与之兼容的类型。
例子:Site site = new Site("Runoob")。
Java中的转义字符
符号 | 字符含义 |
\n | 换行 (0x0a) |
\r | 回车 (0x0d) |
\f | 换页符(0x0c) |
\b | 退格 (0x08) |
\0 | 空字符 (0x20) |
\s | 字符串 |
\t | 制表符 |
\" | 双引号 |
\' | 单引号 |
\\ | 反斜杠 |
\ddd | 八进制字符 (ddd) |
\uxxxx | 16进制Unicode字符 (xxxx) |
关系运算符
运算符 | 描述 | 例子 |
== | 检查如果两个操作数的值是否相等,如果相等则条件为真。 | (A == B)为假。 |
!= | 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 | (A != B) 为真。 |
> | 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 | (A> B)为假。 |
< | 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 | (A <B)为真。 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 | (A> = B)为假。 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 | (A <= B)为真。 |
位运算符
A为60,B为13
操作符 | 描述 | 例子 |
& | 如果相对应位都是1,则结果为1,否则为0 | (A&B),得到12,即0000 1100 |
| | 如果相对应位都是 0,则结果为 0,否则为 1 | (A | B)得到61,即 0011 1101 |
^ | 如果相对应位值相同,则结果为0,否则为1 | (A ^ B)得到49,即 0011 0001 |
〜 | 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 | (〜A)得到-61,即1100 0011 |
<< | 按位左移运算符。左操作数按位左移右操作数指定的位数。 | A << 2得到240,即 1111 0000 |
>> | 按位右移运算符。左操作数按位右移右操作数指定的位数。 | A >> 2得到15即 1111 |
>>> | 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 | A>>>2得到15即0000 |
逻辑运算符
作符 | 描述 | 例子 |
&& | 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 | (A && B)为假。 |
| | | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 | (A | | B)为真。 |
! | 称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 | !(A && B)为真 |
赋值运算符
操作符 | 描述 | 例子 |
= | 简单的赋值运算符,将右操作数的值赋给左侧操作数 | C = A + B将把A + B得到的值赋给C |
+ = | 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 | C + = A等价于C = C + A |
- = | 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 | C - = A等价于C = C - |
* = | 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 | C * = A等价于C = C * A |
/ = | 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 | C / = A,C 与 A 同类型时等价于 C = C / A |
(%)= | 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 | C%= A等价于C = C%A |
<< = | 左移位赋值运算符 | C << = 2等价于C = C << 2 |
>> = | 右移位赋值运算符 | C >> = 2等价于C = C >> 2 |
&= | 按位与赋值运算符 | C&= 2等价于C = C&2 |
^ = | 按位异或赋值操作符 | C ^ = 2等价于C = C ^ 2 |
| = | 按位或赋值操作符 | C | = 2等价于C = C | 2 |
三目运算符
数据类型 变量名=布尔表达式?值1:值2;
System.out.println(count+(count>1?"times":"time"));
前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。
i=1;
1 3 3
int m=i++ + ++i + i++;
后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算