Java运行原理
步骤1:在本地磁盘创建一个文本文件,命名为Demo.java(源文件)
步骤2:在源文件中编写java代码
Public class Demo{
Public static void main(String[] args){
System.out.println("my name is jame green!");
}
}
步骤3:在当前文件路径下,通过cmd跳转到DOS窗口(控制台页面)
步骤4:通过javac命令 编译源文件,会生成字节码文件(二进制文件)
Javac Demo.java
步骤5:通过java命令运行字节码文件
Java Demo
步骤6:在控制台上可输出对应语句
总结1:java是跨平台语言,所有系统运行java代码都是运行class字节码文件
总结2:java运行原理的流程:java源文件--->javac命令进行编译工作并生成class文件--->
java命令运行class文件才能执行java代码中的功能
变量及常量
1.内存如何存放数据
特点:
(1)临时数据存放在内存条中
(2)永久数据存放在硬盘中
拓展:
栈,堆,方法区的关系是什么?
答:(1)栈一般存放变量
(2)堆一般存放对象
(3)方法区一般存放静态成员
2.生活中的变量
“类比”开房间:
房间 ------- 变量
房间名字 -------- 变量名
房间类型 -------- 变量类型
入住的客人 --------变量值
3.计算机中的变量
步骤1(定义的行为):
变量类型 变量名;
步骤2(赋值的行为):
变量名 = 变量值;
步骤3(输出变量):
System.out.println(变量名);
public static void main(String[] args){
int money;
money = 12;
System.out.println(money);
}
4.常量
定义:固定的值,一般存放在常量中
常量和变量的区别:变量一般存放可变的值,而常量一般存放固定的值
常量的命名规范:
(1)常量名通常纯大写
(2)不同字符使用下划线分隔
(3)只能赋值一次,不可更改
int HEIGHT = 170;
int HEIGHT_CHILD = 130;
数据类型
1.Java基本数据类型
(1)8种基本数据类型
整型:byte,short,int,long
浮点型:float,double
字符型:char
布尔:boolean
2.Java基本数据类型创建
byte a = 11;
System.out.println(a);
short b = 20;
System.out.println(b);
int c = 23;
System.out.println(c);
long d = 99999999999L;
System.out.println(d);
float f = 30.4F;
System.out.println(f);
double g = 30.5;
System.out.println(g);
char h = '男';
System.out.println(h);
boolean i = true;
System.out.println(i);
3.Java引用类型
引用类型不属于基本数据类型,但是属于数据类型
String a = "123";
String b = "true";
String c = "哈哈,.! 哈哈哈";
System.out.println(a+" "+b+" "+c);
4.数据类型实战
输出Java课考试最高分:98.5
输出最高分学员姓名:张三
输出最高分学员性别:男
public static void main(String[] args){
double score = 98.5;
String name = "张三";
char sex = '男';
System.out.println("java考试最高分:"+score);
System.out.println("最高分学员姓名:"+name);
System.out.println("最高分学员性别:"+sex);
}
5.变量命名规则
(1)规则:变量名 = 首字母(字母/下划线‘_’/‘$’符号) + 其余部分(任意多的:数字/字母/下划线‘_’/‘$’符号)
(2)特点:多个字母组合需符合驼峰规则,例如moneyCount(变量首字母一般为小写)
(3)特点:尽量使变量有意义,例如money,score等等,反面案例例如a,b,c等等
6.实战
7.拓展
运算符
1.赋值运算符
int wangScore = 80;
int zhangScore;
zhangScore = wangScore;
System.out.println(“张萌成绩是" +zhangScore);
2.算术运算符
int one = 3;
int two = 4;
int three = 5;
int four = 9;
System.out.println(one + two);
System.out.println(two - one);
System.out.println(three * two);
System.out.println(four / three);
3.关系运算符
int mouse = 3;
int tiger = 4;
int cat = 5;
int dog = 9;
System.out.println(mouse > tiger);
System.out.println(tiger < cat);
System.out.println(mouse == 3);
System.out.println(cat != 3);
System.out.println(dog >= 9);
System.out.println(cat <= tiger);
4.自动类型转换
(1)口诀:由小转大
byte(1字节) – > short(2字节)-- > int(4字节) – > long(8字节) --> float(4字节) – > double(8字节)
char (2字节)-- > int(4字节) – > long(8字节) --> float(4字节) – > double(8字节)
(2):满足自动类型转换的条件
两种类型要兼容
数值类型(整型和浮点型)互相兼容
目标类型大于源类型
例如:double 型大于 int 型
(1)int a = 3;
double b = a;(√)
(2)int a = 4;
long b = a;(√)
(3)long b = 4;
int a = b;(x)
5.强制类型转换
(1)口诀:从右往左,类型必须强制转换(类型从大到小)
byte(1字节) – > short(2字节)-- > int(4字节) – > long(8字节) --> float(4字节) – > double(8字节)
char (2字节)-- > int(4字节) – > long(8字节) --> float(4字节) – > double(8字节)
例如:
double c = 3.4;
int d = (int)c;
System.out.println(d);
强制转换有硬性的缺陷:数据精度可能会丢失
Scanner类
package text;
import java.util.Scanner;
public class Demo02{
public static void main(String[] args){
System.out.println("请输入字符:");
Scanner scanner = new Scanner(System.in);
String input = scanner.next();
System.out.println("输出的字符:"+input);
}
}
步骤:
(1)输出字符串
(2)创建Scanner对象
(3)调用scanner对象(变量)的next()获取键盘(系统)输入的值