一 java运行原理
Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。
二 类和对象
类 是事物的抽象化,对象 是类的具体化
比如:车 是类;大众汽车 是对象;
三 数据类型
基本数据类型
数值型
整数型:byte、short、int、long
浮点型:float、double
字符型char
通过单个字符表示:"9","a"..
转义字符表示:'\t'、'\n'..
字符串string
表现字符串,比如String str = "hello";
布尔型boolean
表示逻辑中的真和假,值只有 true 和 false。
四 变量
比如 int a = 10;
变量的声明
数据类型 变量名
int a :声明一个整数型变量a;
变量的赋值
变量名 值
a = 10:使变量a的值为10;
或者可写成 int a =10;
五 栈内存与堆内存
栈内存
一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配
常量池
基本类型的变量、字符串类型、nul存放在常量池中,唯一存在
堆内存
堆内存用于存放由new创建的对象和数组,为具体的内容,不唯一存在
比如
int sum = 10;
10存放于常量池中,sum指向于栈区;
string str = new string("hello");
new string("hello") 具体内容存放于堆区中,把str 这个引用(地址)放入栈内存;
六 运算符
算数运算符
1 + 运算符除了进行数学运算的加法之外,还可以做字符串的拼接
++ 自增
2 - 运算符进行数学运算的减法,还可以取负
- - 自减
比如
int a = 20;
system.out.println(a++) // 后置自增
system.out.println(a) // 21
system.out.println(--a) // 前置自减20
system.out.println(++a) // 前置自增21
system.out.println(a--) // 后置自减21
system.out.println(-a) // -20
赋值运算符
== / += / -= / *= / %=
比如 a =a + 1 等同于 a+=1,以此类推
比较运算符
> / >= / < / <= / !=
左右两边为数值
逻辑运算符
与 && / 或者|| / 非 !
左右两边为布尔类型的常量,变量,表达式
三目运算符
String str = age > 18 ? "成年":"未成年";
七 流程控制
分支结构
if else
String color = "red";
if (color.equals("red")) {
System.out.println("红色");
} else if(color.equals("blue")) {
System.out.println("蓝色");
} else if(color.equals("white")) {
System.out.println("白色");
} else {
System.out.println("无法匹配");
}
switch
String color = "red";
switch (color) {
case "red": {
System.out.println("红色");
break;
}
case "blue": {
System.out.println("蓝色");
break;
}
case "white": {
System.out.println("白色");
break;
}
default: {
System.out.println("无法匹配");
}
}
break为跳出当前节点,避免运行下面语句
循环结构
while
int sum = 0;
int i = 1;
while (i <= 10) {
sum = sum + i;
i++;
}
System.out.println(sum);
do-while(第一次总是执行)
int sum = 0;
int i = 100;
do {
sum = sum + i;
i++;
} while (i <= 10);
System.out.println(sum);
for
int sum = 0;
for (int i = 1; i <= 10; i++) {
if (i % 2 == 6) {
break;
}
sum = sum + i;
}
int sum = 0;
for (int i = 1; i <= 10; i++) {
if (i % 2 == 6) {
continue;
}
sum = sum + i;
}
注意break是跳出当前循环,continue是结束本次循环。