一个简单的Java程序
public class FirstSample{
public static void main(String[] args){
System.out.printLn("HelloWorld!");
}
}
注意:
- 所有的Java程序都有这样的结构;先定义了一个类(当然一个程序(这整个文档页面下)可能包含多个类;);public 叫做访问修饰符,用来定义程序中其他类对这段代码的访问级别。class 是类的声明 FirstSample 是这个类的名字;类的所有属性方法都将包含在类最外层{ }中;并且要注意;源代码的文件名必须和公共类名称相同,也就是说这个源代码的文件名必须是FirstSample.java。
- 运行任何一个程序,JVM都是从类中的 main方法开始执行;并且main 方法必须要用public声明。main(参数 )名字为args的字符数组 作为传入参数。
- Java注释 // 或者 /* 注释内容 */ 或者 /** 内容可生成文档 */
- print 与printLn的区别:print 输出后 如果后面还有输出内容,将同行输出;printLn的话就会在下一行输出。
数据类型
Java 是强类型语言,意味着每种变量都需要在它前面声明类型。
类型一共8种;整型4种 浮点型2种 布尔型 字符型
整型:int 4字节(20亿) short 2字节 long 8字节 byte 1字节
浮点型:float 4字节 double 8字节(常用)
char类型 2字节
布尔类型
变量
先声明如:
double salary;
int vacatonDay;
long earthPopulation;
注意:变量声明了之后一定要初始化,并且声明和初始化最好靠近第一次使用的地方。
常量
用 final int CONSTANT = 222;
声明后只能赋值一次。
类的常量声明定义在main方法的外部,故同一个类内的其他方法也能使用这个常量;特别的,如果这个常量被public声明,那么其他类也能够访问这个常量。
运算符
常用运算符
+ - * / % (可以写 += *= )
注意:当参与 / 的两边都是整数时 表示整除,否则都是浮点除法。
自增与自减
// 注意不能 写 4++ 具体数字++是错误的
int m = 7;
int n =7;
a = n++; // a = 7
b = ++m; // b = 8
/* 但最后
n = 8
m = 8
*/
可以写;n++ ; ++n ;但是不建议在表达式中用 比如:a = n++ +2
比较运算符
== != < > < = >= && || !
condition ?x:y (条件成立选 x 否则选 y)
位运算(速度快)
& | ~ ^ (与 或 非 异或)
左移 << (乘2的秘运算)
右移
对int型,最高位是符号位
无符号右移(操作单纯的移位运算)
简单的数学运算
平方根: Math.sqrt()
幂运算:Math.pow()
double x = 4;
double y;
int a = 2
int b = 0
//平方根运算
y = Math.sqrt(x);
System.out.printLn(y);
// 幂运算
b = Math.pow(a,2)
System.out.printLn(b);
数值类型转换
自动类型提升
这样写报错是因为 逆开始定义 b是byte型,运算的结果是int型,int 不能赋值给 byte型。
因为 3 是 int 而且是常量 ;赋值给byte类型的 b会自动截取;
但是 b = b +1 就会报错,因为 byte类型的 b不会对变量自动截取(宁愿报错也不允许可能的精度缺失);
强制类型转换
括号与运算符优先级
字符串
String greet = "hello"
- 提取子串 String a = greet.subtring(0,3) ;// hel
- 拼接 +
- 字符串不可修改(就像常量一样);但是可以重新定义变量
- 检查字符串是否相等:string.equals(string) string.equalsIgnoreCase(string)(忽略大小写) 注意:避免使用 ==比较字符串是否相等。
- 空串“” str.length() == 0 或者 str.equals("")检查是否是空串
字符串常用API
代写
输入输出
控制流程
控制流程有:顺序;判断;选择; 循环
if 判断
if (条件){
执行;
}
if (条件){
执行1;
}
else{
执行2;
}
if (条件1){
执行1;
}
else if (条件2){
执行2;
}
else if (条件3){
执行3;
}
else{
执行4;
}
switch 选择
switch (选择)
{
case 选项1:
执行语句;
break;
case 选项2:
执行语句;
break;
case 选项3:
执行语句;
break;
.....
default:
// bad input
break;
}
循环 while
while (条件){
执行语句;
破坏条件;
}
do
{
执行语句;
破坏条件;
}
while (条件);
for (int i=1; i<100; i++ ){
执行语句;
}
break 语句
// break 适用范围是switch 和 循环语句内
//带有标签的 break 可以方便的用来决定跳出那一层循环。
outter: for (int i = 0; i<100;i++){
inner: for (int j = 2; j<99; j++){
break outter;
}
}
continue 语句
遇到continue 不用管其下面的循环 而从头执行下一次循环
continue 也可以加标签