JDK的基本介绍
1.JDK = JRE+java的开发工具【java,javac,javadoc,javap等】
2.JDK中包含了java开发工具,也包括了JRE。所以安装JDK后,就不用再单独安装JRE了。
JRE基本介绍
1.JRE=JVM + Java的核心类库【类】
如果只想运行一个已经开发好的Java程序,计算机中只需安装JRE即可。
第一个Java程序 HelloWorld
//1.public class Hello 表示Hello是一个类,是一个public公有的类
//2.Hello{表示一个类的开始和结束}
//3.public static void main(String[] args)表示一个主方法,即程序的入口
//System.out.println("hello,world~");将内容输出到屏幕
public class Hello{
public static void main(String[] args){
System.out.println("hello,world~,老程 is studing Java!");
}
}
注意
当代码中有中文时,编译可能会报错,记得把文字格式改成GBK
Java严格区分大小写
一个源文件中至多只能有一个public类,其他类个数不限
编译后每一个类,都对应一个.class文件
如果源文件包含一个public类,则文件名必须用该类名命名!
Java执行流程分析
.java文件(源文件)→.class文件(字节码文件)→结果
本章作业1.将个人的基本信息(姓名、性别、籍贯、住址)打印到控制台上输出。各条信息分别占一行。
public class Homework01(){
public void static main(String[] args){
System.out.println("姓名t性别t籍贯t住址n亚楠t女t山西t陕西");
}
}
2.JDK , JRE , JVM 的关系
答:JDK=JRE+Java开发工具
JRE=JVM+核心类库
3.环境变量path配置及其作用
(1)环境变量的作用是为了在dos的任意目录下,都可以使用Java和javac命令
(2)先配置JAVA_HOME=指向JDK安装的主目录
(3)编辑path环境变量,增加%JAVA_HOME%bin
4.Java编写步骤
(1)编写java源代码
(2)javac编译,得到对应的 .class 字节码文件
(3)java 运行,本质就是把 .class加载到jvm中运行
第三章 变量1.练习记录一个人的信息
public class Var01{
public void static main(String[] args){
int age = 18; //int 占4字节
double score = 99.9; //double 占8字节
char gender = '女';
String name ="楠";
System.out.println("这个人的信息是");
System.out.println(name);
System.out.println(age);
System.out.println(score);
System.out.println(gender);
}
}
变量使用注意事项
(1)变量表示内存中的一个存储区域【不同的变量,类型不同,占用的空间也不相同】
(2)该区域有自己的名称【变量名】和类型【数据类型】
(3)变量必须先声明,后使用
(4)该区域的数据/值可以在同一类型范围内不断变化
(5)变量在同一个作用域内不能重名
(6)变量 = 变量名 + 值 + 数据类型(变量三要素)
程序中 + 号的使用(细节)(1)当左右两边都是数值型时,则做加法运算
(2)当左右两边有一方为字符串,则做拼接运算
(3)运算顺序:从左到右
例子:System.out.println(100 + 8 ); 输出:108
System.out.println("100" + 8); 输出:1008
System.out.println("hello" + 100 + 8)输出: hello1008
数据类型Java数据类型分为 基本数据类型 和 引用数据类型两大类
基本数据类型可以分为4类,共8种
| 数据类型 | 名称 |
|---|---|
| 整型 | byte(1)short(2)int(4)long(8) |
| 浮点型 | float(4)double(8) |
| 字符型 | char(2)(存放单个字符’a‘) |
| 逻辑型 | boolean(1)(存放’true‘和’flalse’) |
引用数据类型可分为类、借口、数组,后面会详细解释。
注意
在Java中,String属于类,不单单只表示字符串类型。
整型的类型
| 类型 | 占用存储空间 | 范围 |
|---|---|---|
| byte | 1字节 | -128—127 |
| short | 2字节 | -2^15—2^15-1 |
| int | 4字节 | -2^31—2^31-1 |
| long | 8字节 | -2^63—2^63-1 |
整型注意事项
(1)Java各整数类型有固定的范围和字段长度,不受具体os的影响,以保证Java程序的可移植性。
(2)Java的整型常量(具体值)默认为int型,声明long型常量须后加L。
(3)Java程序中变量常声明为int型,除非不足以表示大数,才使用long。
浮点型的分类
| 类型 | 占用存储空间 | 范围 |
|---|---|---|
| 单精度float | 4字节 | -3.403E38 ~ 3.403E38 |
| 双精度double | 8字节 | -1.798E308 ~ 1.798E308 |
(1)浮点数在机器中存放形式的简单说明 浮点数 = 符号位 + 指数位 + 尾数位
(2)尾数部分可能丢失,造成精度损失。
(3)Java浮点类型的默认类型是double,声明float型常量,须后加F.
字符类型
(1)字符常量是用单引号’‘括起来的单个字符。例:char C1 = 'a';
(2)在Java中,char的本质是一个整数,在输出时,是unicode码对应的字符。(Unicode码就像Ascll码一样,不过Unicode表示的符号要多很多),也可以理解为:Unicode码兼容Ascll码。
-
题外话:UTF-8是互联网使用的最广的一种Unicode编码的实现方式。
Unicode的缺点是不管是英文字母还是汉字都用两个字节来表示,这样很占用空间。而对于汉字来说,2个字节还可能不够用。UTF-8较为灵活,字母占用一个字节,汉字占用三个字节。
例:
char c1 = 97; System.out.println(c1); //输出的结果是 :a char c2 = a; System.out.println(int(c2)); //输出的结果是 :97 char c3 = 'b' + 1; //98+1 System.out.println(int(c3)); //输出结果是 :99 System.out.println(c3); //输出的结果是:c
逻辑类型
例:判断成绩能否通过
public class boolean01{
public static void main(String[] args){
boolean pass = true;
if(pass = true){
System.out.println("考试通过,成功录取");
}else{
System.out.println("很遗憾,考试未通过,下次继续努力");
}
}
}
注意
在Java中,不能用0或非0来替代true或false。
自动类型转换
在Java中精度小的类型可以自动转换为精度大的数据类型,这个就是自动类型转换。
char→int→long→float→double
byte→short→int→long→float→double
注意
(1)有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
(2)(byte,short)和char之间不会相互自动转换。
(3)byte,short,char,他们三者可以计算,在计算时首先转换为int类型。
解释:
byte b1 = 1; byte b2 = 1; short s1 = 1; short = b1+s1; //错误的,因为进行“+”运算后,等号右边的类型就变成了int(整型),int无法自动转换为short byte = b1 + b2;//也是错的,理由同上,只要进行了运算就会转变为int型
(4)boolean类型不参与转换
(5)自动提升原则:表达式结果的类型自动提升为操作数中最大的类型
强制类型转换
-
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时加上强制转换符(),但可能造成精度降低或溢出,要格外注意。
-
例:
int i = (int)1.9; System.out.println(i);
强转符号只对最近的的操作数有效,往往会使用小括号提升优先级。例:
int x = (int)10*3*5*1.5;//错误的,只强制转换了10; int x = (int)(10*3*5*1.5);//正确的,转换了后面小括号里的全部值 System.out.println(x) //输出:44
基本数据类型和String类型的转换
-
基本类型转String类型的语法:将基本类型的值+“ ”即可,例:
int n1 = 100; float f2 = 1.01; double d3 = 3.03; boolean b4 = true; String str1 = n1 + ""; String str2 = f2 + ""; String str3 = d3 + ""; String str4 = b4 + ""; System.out.println(str1+str2+str3+str4);
将String类型转换为其他各种类型的方法,例:
String s5 = "123"; //parse意为“解析” int num1 = Integer.parseInt(s5); double num2 = Double.parseDouble(s5); float num3 = Float.parseFloat(s5);
注意
(1)再将String类型转成基本数据类型时,要确保String类型能够转成有效的数据,比如 可以把“123”转换成整型,但是不能把“hello”转成一个整数。
-
2)如果格式不正确,会抛出异常,程序终止。
(1)API 是Java提供的基本编程接口。中文在线文档:https://www.matools.com
(2)Java语言提供了大量的基础类,API就是为了告诉开发者如何使用这些类,以及这些类里包含的方法。
(3)包→类→方法。
本章作业1.使用char类型,分别保存n t r 1 2 3等字符
public class homework01{
public static void main(String[] args){
char a1 = 'n';//换行
char a2 = 't';//制表位
char a3 = 'r';//回车
char a4 = '\';//输出:
char a5 = '1';
char a6 = '2';
char a7 = '3';
System.out.println(a1);
System.out.println(a2);
System.out.println(a3);
System.out.println(a4);
System.out.println(a5);
Sysyem.out.println(a6);
System.out.println(a7);
}
}
2.保存两本书名,用+拼接。保存两个性别,用+拼接。保存两本书的价格,用+拼接,看效果。
public class homework02{
public static void main(String[] args){
String book1 = "人间失格";
String book2 = "西游记";
System.out.println (book1 + book2);
//性别用char来保存
char c1 = '男';
char c2 = '女';
System.out.println(c1+c2);//得到 男 字符码值 + 女 字符码值 是一个数
//价格用double来保存
double price1 = 100.1;
double price2 = 100.5;
System.out.println(price1+price2);
}
}
//输出的结果:
//人间失格西游记
//52906
//200.6
3.实现如下效果:
姓名 年龄 成绩 性别 爱好
xx xx xx xx xx
要求:
(1)用变量将姓名、年龄、成绩、性别、爱好存储
(2)使用+
(3)添加转义字符,使用一条语句输出
public class homework03{
public static void main(String[] args){
String name = "张三";
int age = 18;
double score = 99.9;
char gender = "女";
String hoby = "游泳";
System.out.println("姓名t年龄t成绩t性别t爱好n" + name +'t' + age + 't' + score + 't' + gender + 't' +hoby);
}
}



