目录
一、Java程序的运行
- 使用记事本或者IDEAbianxiejava源程序
- 通过javac编译程序把源文件进行编译,编译后生成.class的字节码文件 语法格式: javac xxx.java(class文件是由字节码组成的与平台无关、面向JVM的文件)
- 启动java虚拟机来运行.class文件。使用java运行xxx.class字节码文件 语法格式:java xxx
注:运行java程序前,必须先安装好JDK,JDK里面就包含了jvac和java工具,Java程序最终是在JVM(Java虚拟机)中运行的。
二、Java的注释
java注释主要分以下三种:
三、标识符
Test称为类名,main称为方法名,也称为标识符。
1、硬性规则
标识符可以包含:字母、数字以及下划线和特殊符号等
注:标识符不能以数字、关键字开头,且严格区分大小写
2、软性建议
- 类名:每个单词的首字母大写(大驼峰)
- 方法名和变量名:首字母小写,后面每个单词首字母大写(小驼峰)
四、关键字
java中常见关键字:
用于定义访问权限修饰符的关键字 | private | public | protected | |
用于定义类、函数、变量修饰符的关键字 | abstract | final | static | synchronized |
用于定义类与类之间的关系的关键字 | extends | implements | ||
用于定义建立实例、引用实例、判断实例的关键字 | new | this | super | instanceof |
用于异常处理的关键字 | try | catch | finally | throw |
用于包的关键字 | package | import | ||
其他修饰关键字 | native | assert | volatile |
五、java的数据类型
数据类型分为两种:基本数据类型和引用数据类型
基本数据类型有四类八种:
- 四类:整型、浮点型、字符型和布尔型
- 八种
数据类型 | 关键字 | 内存占用 | 范围 |
字节型 | byte | 1字节 | -128~127 |
短整型 | short | 2字节 | -32768~32767 |
整型 | int | 4字节 | -2^(31)~2^(31)-1 |
长整型 | long | 8字节 | -2^(63)~2^(63)-1 |
单精度浮点数 | float | 4字节 | 有范围,一般不关注 |
双精度浮点数 | double | 8字节 | 有范围,一般不关注 |
字符型 | char | 2字节 | 0~65535 |
布尔型 | boolean | 没有明确规定 | true和false |
六、变量
1、整型变量
2、长整型变量
long c=10L; //为了区分int和long类型,建议在long类型变量初始值后面加上L或l
long d=10l; //一般加L,小写l与1不好区分
3、短整型变量
4、字节型变量
5、双精度浮点型变量
int a=1;
int b=2;
System.out.println(a/b);
注意:在java中,int除以int的值仍为int(会直接舍弃小数部分)。
double num=1.1;
System.out.println(num*num);
//执行结果如下:
1.210000000000002
6、字符型变量
char a='A';
char b='1';
char c='张';
7、布尔型变量
七、类型转换
int a=10;
long b=100L;
b=a; //可以通过编译
a=b; //编译失败
java中的类型转换主要分为两类:自动类型转换(隐式)和强制类型转换(显式)
1、自动类型转换(隐式)
在代码编译时,编译器会自动进行处理。特点:数据范围小的转换为范围大的时会自动进行
byte b1=100; //编译器会隐式将100转换为byte
byte b2=257; //编译失败,257超过byte的数据范围,有数据丢失
int a=100; //a赋值给b时,编译器会自动将a提升为long类型,然后赋值
long b=10L; //编译器报错,long的数据范围比int大,会有数据丢失,不安全
2、强制类型转换(显式)
byte b1=(byte)257; //257默认为int,超出byte范围,需要显式转换,否则报错
int a=1;
boolean flag=true;
a=flag; //编译失败,类型不兼容
flag=a; //编译失败,类型不兼容
八、类型提升
1、int和long之间:int会被提升为long
int a=10;
long b=20L;
int c=a+b; //编译出错
//a+b被提升为long,赋值给int会丢失数据
2、byte和byte的运算
byte a=10;
byte b=20;
buye c=a+b; //编译报错。运算时a和b会提升为int,从int转换到byte可能会数据丢失
结论:byte和byte都是相同类型,但是编译报错。虽然a和b都是byte,但是计算a+b会先将a和b提升为int,再进行计算,得到的结果也是int。
九、字符串类型
int a=10;
int b=20;
System.out.println("sum:"+a+b); //打印为:sum:1020;
System.out.println(a+b+"sum:"); //打印为:30sum:
1、int转换为String
int a=10;
//方法一:
String str1=a+"";
//方法二:
String str2=String.valueof(a);
2、String转换为int
String str="100";
int a=Integer.valueof(str);