Java语言特点(跨平台):一次编译到处执行,JVM(Java虚拟机)
-
java编译运行过程: 编译期:.java源文件,经过编译,生成.class字节码文件运行期:JVM加载.class并运行.class
-
编译期:.java源文件,经过编译,生成.class字节码文件
-
运行期:JVM加载.class并运行.class
-
名词解释: JVM:java虚拟机:加载.class并运行.classJRE:java运行环境 除了包含JVM以外还包含了运行java程序所必须的环境JRE=JVM+java系统类库(小零件)
-
JVM:java虚拟机:加载.class并运行.class
-
JRE:java运行环境 除了包含JVM以外还包含了运行java程序所必须的环境JRE=JVM+java系统类库(小零件)
JDK安装与环境变量的配置:JAVA_HOME Path
手撕hello world
1.记事本编写代码,记事本后缀改为.java
2.cmd中使用javac命令将记事本源码文件编译为字节码文件.class
3.java 类名 执行程序
在IDE中创建Java项目。在src(源文件夹)下创建Package(包)——>根据作用的不同分为不同的class(类)
关键字 :开发语言中已经内定以一些单词,并赋予了特殊作用,开发人员只能按照指定的语法进行使用 ;Java中关键字所有字母都是小写
1.48个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while。
final(定义常量)
final int a = 10;
2.2个保留字(现在没用以后可能用到作为关键字):goto、const。
3.3个特殊直接量:true、false、null。
注释:
//注释单行
/*注释多行
注释内容
注释内容*/
/**文档注释
注释内容*/
标识符(变量名、类名、方法名、参数名、常量名):
命名规范、规则:标识符只能有字母、数字、$和_组成,首字符不能是数字(中文语法通过,但是不允许) 标识符不能是关键字,可以包含关键字。所有的标识都要见名知意 ,可以缩写,如果影响到见名知意,就不要缩写。
java数据类型包括基本数据类型和引用类型
java基本数据类型 :
整数类型:byte、short、int、long;
浮点型:float、double;
字符型:char
布尔型:boolean
整数类型的取值范围(负数二进制算值要反码加一)
byte 1个字节 -2^7~2^7-1 -128~127 8个bit: 0(表示正负,0正1负)1111111
short 2个字节 16个二进制位 -2^15~2^15-1
int 4个字节 32个二进制位 -2^31~2^31-1
long 8个字节 64个二进制位 -2^63~2^63-1
float 单精度浮点型 四个字节 默认值0.0f
double 双精度浮点型 八个字节 默认值0.0
char 两个字节 0~65535 FF FF(十六进制)
boolean 1或4个字节 true/false 默认值是false
public class test3 {
public static void main (String[] args){
//Java的基本数据类型之间的转换
//数据类型的转换
//隐式转换(程序会自动完成转换)
byte numbyte=12;
int numint=numbyte;
//取值范围小的类型可以自动转换成取值范围大的值
numint=128;
numbyte=(byte)numint;
System.out.println(numbyte);
//强制类型转换
float numFloat=22L;
numFloat=numint;
long numLong=122222222;
numFloat=numLong;
numint=(int)numFloat;
//整数和字符之间的转换
numint='a';
char numChar=65535;
numChar='\u0000';
numChar='\r';
//'\'叫做转义符
//boolean类型不能和其他类型转换(强制类型转换也不行);
}
}
输入:
package com.easy;
import java.util.Scanner;
public class test5 {
public static void main(String[] args) {
//扫描器对像 输入流 对象
Scanner scan=new Scanner(System.in);
System.out.print("请输入一个整数:");
int a=scan.nextInt();
System.out.println((char)a);
scan.close();//注意使用close()截断输入流
}
}
输出:
public static void main (String[] args){
System.out.println();
System.out.print(11);//必须要有参数
}
进制转换:
public static void main (String[] args){
int a=0B111;//‘0B’二进制
System.out.println(a);
int b=0111;//‘0’八进制
System.out.println(b);
int c=0X111;//‘0X’十六进制
System.out.println(c);
}
运算符:
public static void main(String[] args) {
//运算符
//+(加) -(减) *(乘) /(除) %(取余)
int a=12;
int b=23;
System.out.println(a+b);//35
int c=a+b;
System.out.println(a-b);//-11
System.out.println(a*b);//276
System.out.println(a/b);//0
System.out.println(a%b);//12
//整数和整数运算的结果是整数(int)
//除非有long参与得到结果就是long类型
//%的结果正负 A%B得到结果正负号和A一样
System.out.println(12%23);
System.out.println(12%-23);
System.out.println(-12%23);
System.out.println(-12%-23);
System.out.println("---------------");
//a++ a-- ++a --a
a=12;
a++; //a=a+1;
//a++在a变量原值基础上+1
//a--在a变量原值基础上-1
//a++ ++a
a=12;
c=a++;//a++ 后加加 先将a的值赋给表达式,a的值再+1
System.out.println(c);
System.out.println(a);
c=++a;//++a 前加加 先a+1,再将a的值赋给表达式
System.out.println(c);
System.out.println(a);
a=12;
a=a++;
System.out.println(a);//12
a=12;
a=++a;
System.out.println(a);//13
}
public static void main(String[] args) {
int i=1, j=2;
int k = i++ + ++i +j++ + ++j;
System.out.println(k+","+i+","+j);//k=10,i=3,j=4
//比较运算符
// > < >= <= == !=
//==在基本数据类型中比较的是值是否一样
//逻辑运算符(用于运算boolean值)
// &&逻辑与运算符 ||逻辑或运算符 !逻辑非运算符
boolean result= 12>23 && 23<45;
// A&&B A和B都为true结果才为true
result=12<23 || 23<45;
// A||B A和B有一个为true结果就为true
result= !true;
if(!"123".isEmpty());
//短路现象 多个表达式运算,前面的表达式已经可以明确整个.表达式的结果,后面的就不需要再运行
// false--------->false
result=12>23 && 23<45;
int a=0;
int b=0;
result= a++<0 && b++>0;
System.out.println(a+"-----------"+b);
a=0;
b=0;
result= a++>=0 || b++>0;
System.out.println(a+"-----------"+b);
}
注意算数运算符优先级‘()’内最高,‘=’运算优先级低