JAVA基础
命令提示符
启动: Win+R
切换盘符: 盘符名称: 列:(d:)
进入文件夹 cd 文件夹名称
进入多级文件夹 cd 文件夹1文件夹2文件夹3...
返回上一级 cd..
返回根路径 cd
查看当前内容 dir
清屏 cls
退出 exit
Java程序具有跨平台性,可以在window系统,linux系统,MAC系统上运行.
JVM虚拟机:Java程序的运行环境,Java编写代码都运行在Jvm上(类似于语言翻译器(翻译官之类的)).
JRE:是Java的运行环境 包含 Jvm 和运行时所需要的 核心类库.
JDK:是Java程序的开发工具包,包含 JRE 和开发人员使用的工具.
运行一个已有的Java程序只需要安装一个JRE即可.
但要创建一个Java程序那么必须要安装一个JDK(也可以运行Java程序(JDK自带JRE)).
注释:
单行注释: // 内容
多行注释: (也叫 区块注释)
Hello World
// 第一行的类名称必须和所在文件名一样,大小写也要一样
// public class 后面的是类名称(定义一个类的名称),类是Java中所有源代码的基本组织单位
//classpath:指定当前目录在什么地方.
public class Hello World {
// 第二行是固定不变的写法,代表main方法
这一行代表程序执行的起点
public static void main(String[] args){
// 第三行代表打印输出语句(就是输出 System.out.printn("内容") 里的内容)
System.out.println("Hello World");
}
}
常量
常量的概念:程序运行中不可以改变的量为常量.
常量分类:
1.字符串常量: 凡是用双引号引起来的部分,就叫做字符串常量. 例:"abc","Hello","123"
2.整数常量: 直接写上数字,没有小数点. 例:100,200,0,-200
3.浮点数常量:直接写上数字,有小数点. 例:2.5,-3.14,0.0
4.字符常量:凡是用单引号引起来的单个字符,就叫做字符常量. 例: 'A','a','9','中国'
5.布尔常量:只有两种取值 true , false.
6.空常量:null,代表没有任何数据.
基本数据类型
整数型: byte short int long
浮点型: float double (也叫小数型)
字符型: char
布尔型: boolean
注意事项:
1.字符串不是基本类型 , 而是引用类型.
2.浮点型可能只是一个近似值, 并非精确的值.
3.数据范围与字节数不一定相关,列如 float 是4字节 , long 是8字节.
4.浮点数当中默认类型是 double , 如果一定要使用 float 类型, 需要加上一个后缀F;
如果是整数,默认为 int 类型 , 如果一定要使用 long 类型 , 需要加上一个后缀L.
(推荐后缀使用大写),列:
system.out.println(100L);
byte Java的八种基本数据类型 byte 1字节 1*8(8位) -128 ~ 127 -2^7~2^7-1 浮点数型 float 4字节 4*8(32位) 1.4E-45 ~ 3.4028235E38 字符型 char 2字节 2*8(16位) 0~65535 0 ~ 2^16-1 布尔型 boolean 1字节 1*8(8位) true或false true或false 变量1:程序运行期间,内容可以发生改变的量. 创建变量且使用的格式(一步一步格式): 一步到位格式: public class name(自定义名称){ //一步一步格式 int num1; //向变量中存入一个数据 num1 = 10; //打印输出,显示变量里的内容 System.out.println(num1); //一步到位格式 int num2 = 20; //改变变量中的内容 int num2 = 35; byte num3 = 30; //注意:右侧数据值不能超过左侧数据类型的取值范围,如下: long num5 = 3000000L; //后面加个 L 是因为 long 类型 float num6 = 2.5F; //float 类型 double num7 = 1.2; //double类型 char zifu1 = 'A'; //char类型 zifu1 = '中'; //中文输出 boolean var1 = false; //布尔型(只有两个数据 true 和 false) boolean var2 = var1; 使用变量时的一些注意事项: 当数据类型不一样时,将会发生数据类型转换. 自动类型转换(隐式): //左边是 long 类型,右边100默认是 int 类型,左右不一样. //左边是double类型,右边是float类型,左右不一样. //左边是float类型,右边是long类型,左右不一样. public class name(自定义名称){ 注意事项: ASCLL:美国信息交换标准代码. 四则运算: 取模(取余数): % 首先计算得到表达式的结果,然后再打印输出这个结果. 对于一个整数的表达式来说,除法用的是整数,整数除以整数,结果仍然是整数.整数表达式只看商,不看余数. 注意事项: public class name(自定义名称){ //两个常量之间可以进行数学运算 //两个变量之间也可以进行数学运算 //变量和常量之间可以混合使用 //整数表达式只看商,不看余数. //只取余数 四则运算符中加号"+"最常见的三种用法: 案例: 算术运算符-自增自减运算 自增运算符: ++ 基本含义: 让一个变量涨一个数字1,或者让一个数字降(减)一个数字1. 案例: 和赋值操作混合使用 int num3 = 30; 练习: 赋值运算符 赋值运算符分为: 复合赋值运算符: 注意事项: 比较运算符 大于: > 注意事项: 数学当中的写法,例如: 1
Java数据类型的取值范围如下:
整数型
short 2字节 2*8(16位) -32768 ~ 32767 -2^15~2^15-1
int 4字节 4*8(32位) -2147483648 ~ 2147483647 -2^31~2^31-1
long 8字节 8*8(64位) -9223372036854775808 ~ 9223372036854775807 -2^63~2^63-1
double 8字节 8*8(64位) 4.9E-324 ~ 1.7976931348623157E308
变量
变量2:在内存中开辟的一个临时空间,在程序的执行过程中,不停的发生改变.
数据类型 变量名称; //创建了一个变量
变量名称 = 数据值; //赋值,将右边的数据值赋值交给左边的变量
数据类型 变量名称 = 数据值; 再创建一个变量的同时给它赋值(放入指定的数据值(值可以自定义))
public static void main(String[] args){
//创建一个变量
//数据类型 变量名称
//变量名称 = 数据值;
System.out.println(num2);
System.out.println(num2);
//byte num4 = 3000000000; //超过左侧数据类型会提示报错
System.out.println(num5);
System.out.println(num6);
System.out.println(num7);
System.out.println(num8);
System.out.println(zifu1);
System.out.println(var1);
var1 = true; //因为之前已经对var1进行过一次数据类型创建,所以可以直接拿来赋值,但如果加了int就是新创建了一个变量,而且之前有了var1,这新创建一个var1
就会报错,变量名之间不能重复(变量名之间不可以重复).
System.out.println(var1);
System.out.println(var2); //将var1 里的值 true 赋值给var2
}
}
1.如果创建多个变量,变量名之间不能重复.
2.float 和 long 类型中,变量值后面的 F 和 L 不能丢掉.
3.使用 byte 和 short 类型的时候,注意右侧变量值不能超过左侧数据类型的范围.
4.没有进行赋值的变量,不能够直接使用,否则会报错;必须要赋值后才可以使用.
5.可以通过一个数据类型来创建多个变量(但一般不推荐这么写).
6.变量使用不能超过作用域范围.
[作用域]:从定义变量的一行开始,一直到所属的大括号结束为止就叫做[ 作用域].
public class name(自定义名称){
public static void main(String[] args){
//这个括号就是作用域
}
}
数据类型转换-自动类型转换
数据类型转换分为 自动类型转换 和 强制类型转换.
1.特点:代码不需要进行特殊的格式处理,自动完成.
2.规则:数据范围从小到大.
public class name(自定义名称){
public static void main(String[] args){
//一个等号代表赋值,将右边的 int 常量,赋值交给左边的 long 变量进行存储.
//int--->long ,符合数据范围从小到大的要求.
//这一行代码发生了自动数据转换.
long num1 = 100;
System.out.println(num1); //100
//float--- >double ,符合数据范围从小到大的要求.
//这一行代码发生了自动数据转换.
double num2 = 2.5F;
System.out.println(num2); //2.5
//long--->float ,符合数据范围从小到大的要求.
//这一行代码也发生了自动数据转换.
float num3 = 30L;
System.out.println(num3);
}
}
数据类型转换-强制类型转换
强制类型转换(显式):
1.特点:代码需要进行特殊的格式处理,不能自动完成.
2.格式: 范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的数据;
public static void main(String[] args){
//范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的类型;
int num = (int) 100L;
}
}
数据类型转换注意事项
1.强制类型转换一般不推荐使用,有可能发生精度损失和数据溢出.
2.byte/short/char ,这三个数据类型都可以发生数学运算,例如加法"+".
3.byte/short/char ,这三种类型进行数学运算的时候,都会被首先提升成为 int 类型,然后再进行计算.
4.boolean 类型不能发生数据类型转换
ASCLL编码表
Unicode:万国码,也是数字和符号的对照关系,开头0-127部分和ASCLL完全一样,但是从128开始包含有更多字符.
48--'0'
65--'A'
97--'a'
算术运算符-四则运算与取模
加: +
减: -
乘: *
除: /
只有对于整数的除法来说,取模运算符才有余数的意义.
1.一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那个.
public static void main(String[] args){
System.out.println(20 + 30); // 50
int a = 20;
int b = 30;
System.out.println(a - b); // -10
System.out.println(a * 10); // 200
//只有在除数和被除数都是整数才整除.
int x = 10;
int y = 3;
result1 = x / y;
System.out.println(); // 3
int result2 = x % y
System.out.println(result2); // 1 (余数 也可以称之为 模)
}
}
算术运算符-加号的多种
1.对于数值来说它就是加法.
2.对于字符char来说,在计算之前,会被提升成为int,然后在计算.
char类型字符,和int类型数字,之间的关系对照表: ASCII,unicode
3.对于字符串String(首字母大写,不是关键字)来说,加号代表字符串连接作用,
无论任何数据类型和字符串进行连接的时候,结果都会变成字符串.
System.out.println("Hello" + "World"); // 输出 HelloWorld
String str1 = "Java";
System.out.println(str1 + 20); // 输出 Java20
System.out.println(str1 + 20 + 30); // 输出 Java2030
System.out.println(str1 + (20 + 30)); // 输出 Java50
自减运算符: --
使用格式: 写在变量名称之前,或者写在变量名称之后,例如: ++num,或者num++,--同样.
使用方式:
1.单独使用: 不和其他任何操作混合,自己独立成为一个步骤.
2.混合使用: 和其它操作混合,例如与赋值混合,或者与打印操作混合 等等.
使用区别:
1.在单独使用的时候,前++和后++没有任何区别.也就是: ++num 和 num++,是完全一样的.
2.在混合使用的时候,有 [重大区别]:
A. 如果是 前++ , 那么变量 立刻马上+1 , 然后拿着结果再进行使用. [先加后用]
B. 如果是 后++ , 那么首先使用变量本来的数值 , 后再让变量+1. [先用后加]
注意事项:
只有变量才可以使用 自增,自减运算符.常量不可发生改变,所以不能使用.
int num1 = 10;
System.out.println(++num1); // [先加后用] 11 立刻马上+1
System.out.println(num1++); // [先用后加] 也是 11 首先使用变量本来的数值
System.out.println(num1); // 12 然后再让变量+1
案例:
int num2 = 20;
混合使用: 前-- ,变量立刻 -1 变成19 ,然后将结果19交给 result1 变量.
int result1 = --num2;
System.out.println(result1); // 19
System.out.println(num2); // 19
//混合使用: 后-- , 首先把本来的数字30交给 result2 ,然后我自己再 -1 变成29.
int result2 = num3--;
System.out.println(result2); // 30
System.out.println(num3); // 29
int x = 10;
int y = 20;
int result3 = ++x + y--;
System.out.println(result3); // 31
System.out.println(x); //11
System.out.println(y); //19
基本赋值运算符: 就是一个等于符号 "=" , 代表将右侧的数据交给左侧的变量.
+= a += 3 相当于 a = a + 3
-= b -= 3 相当于 b = b - 3
*= c *= 3 相当于 c = c * 3
/= d /= 3 相当于 d = d / 3
%= e %= 3 相当于 e = e % 3
1.只有变量才能使用赋值运算符,常量不能进行赋值.
2.复合赋值运算符其中隐含了一个强制类型转换.例如:
byte a = 10;
a += 5;
//a = a + 5
强制类型转换 a = byte + int
a = int + int
a = int
小于: <
大于等于: >=
小于等于: <=
相等: ==
不相等: !=
1.比较运算符的结果一定是一个boolean值,成立就是 true , 不成立就是 false.
2.如果多次进行多次判断,不能连着写.



