Java程序运行机制
编译型 一次性全翻译完 compile 执行速度更快,对操作系统要求较低,开发操作系统,比如Windows,Linux,用编译型去做,C,C++都是编译型
解释型 读一句翻译一句 网页或脚本对速度要求不高,用解释型
*.java文件(源文件)---Javac---Java编译器-*.class文件(类)-类装载器-字节码校验器(检查,有问题报错)-解释器-操作系统平台“以上
2022.9.5
注释
在段尾按 ctrl+d,直接复制此行到下一行
//
/**/
/**然后回车就是 :
/**
*
*/
public class Hello {
public static void main(String[] args){
System.out.print("Hello,World!");
}
//单行注释,注释一行文字
//输出一个Hello,World!
/*
多行注释,可以注释一段文字
*/
/**
* 文档注释 Java Doc
* @Description
* @Author
*/
}
标识符
关键字
50个,按字母顺序排的
ctrl+y,快速删除当前行
public class Demo01 {
String Ahello = "qin";
String hello = "qin";
String $hello = "qin";
String _hello = "qin";
//大小写十分敏感
String Man ="qin";
String man ="qin";
//String 1hello = "qin"; 错误示范
//String #hello = "qin"; 错误示范
//String *hello = "qin"; 错误示范
}
数据类型
Java属于强类型语言,强类型定义语言 优点:安全,严谨
弱类型语言,比如VB Script,Java Script
public class Demo02 {
public static void main(String[] args){
//八大基本数据类型
//整数
//Integer Byte ctrl+点击 查看它们的最大最小值
int num1 = 10; //最常用
byte num2 = 20;
short num3 = 30;
long num4 = 30L; //Long类型要在数字后面加个L
//小数:浮点数
float num5 = 50.1F; //float类型要在数字后面加个F
double num6 = 3.141592653589793238462643;
//字符
char name = '秦';//注意这里要用单引号
//字符串,String不是关键字,是类
// String namea ="秦";
//布尔值:是非
boolean flag = true;
//boolean flag = false;
}
}
数据类型扩展
//转义字符
// \t 制表符
// \n 换行
//......
System.out.println("Hello\tWorld");
System.out.println("Hello\nWorld");
System.out.println("==================================");
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb);
String sc = "hello world";
String sd = "hello world";
System.out.println(sc==sd);
//对象 从内存分析
//布尔值扩展
boolean flag = true;
if(flag==true){}
if(true){}
//Less is more! 代码要精简易读
public class Demo05 {
public static void main(String[] args){
int i = 128;
byte b = (byte)i;//Byte 内存溢出 强制转换
//强制转换 (类型)变量名 高--低
//自动转换 不用在变量名前加东西 低--高
System.out.println(i);//输出128
System.out.println(b);//输出-128
}
}
public class Demo05 {
public static void main(String[] args){
int i = 128;
double b = i;//自动转换
//强制转换 (类型)变量名 高--低
//自动转换 低--高
System.out.println(i);//输出128
System.out.println(b);//输出128.0
/*注意点:
1. 不能对布尔值进行转换
2. 不能把对象类型转换为不相干的类型
3. 在把高容量转换到低容量的时候,强制转换
4. 转换的时候可能存在内存溢出,或者精度问题!
*/
System.out.println("=====================");
System.out.println((int)23.7);//变成23
System.out.println((int)-45.89f);//变成-45
System.out.println("=====================");
char c = 'a';
int d = c+1;
System.out.println(d);//输出98
System.out.println((char)d);//输出b
}
}
public class Demo06 {
public static void main(String[] args){
//操作比较大的数的时候,注意溢出问题
//JDK新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total1 = money*years;//-1474836480
long total2 = money*years;//-1474836480 默认是int,转换之前已经存在问题了?
long total3 = money*((long)years);//20000000000 先把一个数转换为long
System.out.println(total1);
System.out.println(total2);
System.out.println(total3);
}
}
不建议在同一行里定义多个值
public class Demo07 {
public static void main(String[] args){
//int a,b,c;
//int a=1,b=2,c=3;//程序可读性
int a=1;
int b=2;
int c=3;
String name = "qin";
char x ='X';
double pi = 3.14;
}
}
public class Demo08 {
//类变量 static 从属于类,随着类一起出来,一起消失
static double salary = 2500;//输出2500.0
//属性:变量
//实例变量:在类里面,方法的外面,从属于对象(类);
// 如果不自行初始化,它会变成这个类型的默认值;
//所有的数值类型,初始化都是0或0.0;
//字符串默认值是u0000;
//布尔值默认是false
//除了基本类型,其余的默认值都是null
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量,仅在此{}内有效,必须声明和初始化值
int i = 10;
System.out.println(i);
//变量类型 变量名字 = new Demo08();
Demo08 demo08 = new Demo08();
System.out.println(demo08.age);//输出0
System.out.println(demo08.name);//输出null
//类变量 static
System.out.println(salary);
}
//其他方法
public void add(){
//System.out.println(i);
}
}
public class Demo09 {
//修饰符,不存在先后顺序
//变量类型double前面都是修饰符,前面还可以加东西,比如public,private
//final必须要有,final代表常量,因为是类变量所以加static
//static final double PI = 3.14;
final static double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
大部分:首字母小写和驼峰原则
常量大写字母和下划线
类名 文件名:首字母大写和驼峰原则