使用idea的注意事项
-
要把资源新建在src目录下
-
先建立包(文件夹)在建立类型
-
类的首行会出现包信息,package com.yjxxt.test
-
idea自动保存代码,并提供预编译能力,检查语法,提示问题
-
运行代码:
-
行号的后面显示播放的按钮,点击运行main方法
-
鼠标右键选择运行main方法
-
通过快捷键
-
public class Class001_Test { //主方法快捷键 : main-->enter | psvm->enter public static void main(String[] args) { //输出语句快捷键 : sout->enter System.out.println("123"); } }
变量
什么是变量:
存储单个数据
-
程序执行过程中,其值可以发生改变的量
-
内存中开辟一块空间,用来存放指定类型的数据
-
相当于造盒子
-
盒子:变量
-
盒子的名字:变量名
-
盒子中存储的数据:变量的值
-
盒子的类型|盒子的大小:数据类型
-
常用的数据类型:整数
int
小数double
布尔boolean
字符char-->'a'
字符串String--->""
-
-
变量定义
-
声明的同时赋值
数据类型 变量名 = 数据值
byte num1=1;
-
先声明 后赋值
数据类型 变量名
变量名 = 数据值
byte num2 num2=2;
注意:
=
是Java唯一一个自右向左运算的符号
定义变量需要关注的内容
-
数据类型:对应类型的数据赋值给对应类型变量
-
变量名:标识符的命名规则和命名规范
-
变量的值:与数据类型匹配
-
作用域:有效范围 {}-->块(从变量的声明开始到包括他的离他最近的}结束)
变量的分类
-
局部变量:
-
定义在局部位置(方法中|语句块中)
-
使用之前必须声明并且已经赋值,它是没有默认值的
-
-
成员变量:
-
定义在成员位置的变量
-
只声明不赋值存在默认值
整数
0
小数0.0
布尔false
char空字符
字符串null
-
public class Class001_Variable { //成员位置 : 类中 方法外 int i = 1; public static void main(String[] args) { //局部位置 //定义一个变量,存储学生年龄 int age = 18; System.out.println(age); //声明一个变量,存储一个学生姓名 String name; name = "张三"; System.out.println(name); //同时声明多个变量 double d1,d2,d3; d1=d2=d3=1.1; System.out.println(d1); System.out.println(d2); System.out.println(d3); //同时定义多个变量(声明与 赋值) char ch1='a',ch2='b',ch3='c'; System.out.println(ch1); System.out.println(ch2); System.out.println(ch3); } }
常量
常量:在程序执行过程中其值不能发生改变的量
分类:
-
字面值常量
-
整数常量 0 100 -1 ......
-
小数常量 1.0 0.5 -2.3 .....
-
布尔常量 true false
-
字符常量 'a' '中' '1' ',' ' ' ......
-
空常量 null
-
-
自定义常量
final
最终的被
final
修饰的变量为常量
public class Class002_Constant { public static void main(String[] args) { //把一个字面值常量18赋值给了int类型的变量age final int AGE = 18; final boolean FLAG = true; System.out.println(FLAG); System.out.println(); } }
数据类型
数据类型 : 强类型语言 规定存储数据的大小
计算机基本存储单位 : 为字节 1byte = 8bit
分类 :
-
基本数据类型 : 4类八种
-
引用数据类型 : 类 接口 数组[]
基本数据类型 : 4类八种
整型
-
byte 字节型 1个字节 [-128,127]
-
short 短整型 2个字节 [-32768,32767] +-3万
-
int 整型 4个字节 +-21亿
-
long 长整型 8个字节 非常大
注意 : 在java整数字面常量值数据类型默认为int类型 表示long类型的字面常量值,在数据后面添加l|L
浮点型
浮点型 : 小数
-
float 单精度 一般精确表示小数点后7位左右 4个字节
-
double 双精度 一般精确表示小数点后15位左右 8个字节
注意 :
-
在java浮点类型字面常量值数据类型默认为double类型
-
在java中表示float类型数据,在数据的后面添加F\f
-
存储或运算可能不精确
-
字符型
char 字符型 2个字节
字符型表现形式 :
-
一对''包裹任意一个字符
-
通过0~65535之间的整数表示字符 Unicode字符集
布尔型
布尔型 : 表示正|反 对|错 真|假 boolean 布尔型 1个字节 1bit有效位
public class Class003_DataType { public static void main(String[] args) { //byte byte b1 = -128; byte b2 = 127; System.out.println(b1); System.out.println(b2); //short short sh1 = 1; short sh2 = -20000; System.out.println(sh1); System.out.println(sh2); //int int i = 100; System.out.println(i); //long long l1 = 41474111111L; System.out.println(l1); System.out.println(0.1+0.2); //double double d1 = 123.12345678912; System.out.println(d1); float f1 = 0.15f; System.out.println(f1); //char char ch1 = 'a'; char ch2 = '1'; char ch3 = '中'; char ch4 = ' '; char ch5 = ','; char ch6 = 97; System.out.println(ch6); //boolean boolean flag = true; System.out.println(flag); } }
转义字符
转义字符 : 在java中一些字符具有特殊含义,可以通过转义字符转义具有特殊含义的字符,让它只表示字符本身
转义字符从\开始
\+要转义的字符
\t 制表符: 一个制表符位占8个空格 如果前面的内容满制表符位的整数倍,遇到\t直接开辟一整个制表符位 如果前面的内容不满制表符位的整数倍,加上前面的内容补全一整个制表符位
\n 换行 : 光标从行尾换到下一行的行首
\b 退格: 光标回退一格,如果在\b后面还需要输出其他内容,在光标位置如果存在原有内容会覆盖
public class Class004_Demo { public static void main(String[] args) { System.out.print('\''); System.out.println("\""); System.out.println("\\"); System.out.println("a\tb"); System.out.println("abc\tb"); System.out.println("\tb"); //cmd中,一个字母数字符号占一个空格,一个汉字占2个空格 System.out.print("中\tb"); //print: 输出()中的内容,输出完毕结束,光标还在行尾 //println: 输出()中的内容,输出完毕,光标还换到下一行行收,然后结束 System.out.println(); //换行 System.out.println("张三lisi"); System.out.println("张三lisi\b!"); } }
数值表现形式
整形的表现方式
-
进制:满几进一
-
二进制:由0~1组合, java中由0b|0B开头
-
八进制 : 由0~7组合, java中由0开头
-
十进制 : 默认
-
十六进制 : 由0~9,a~f|A~F组合, java中由0x|0X开头
转换: 其他进制转成十进制 : 从最后往前,从右往左,拿每一位的数据*进制数,次方从0开始,每次+1
十进制转成其他进制 : 求余数计算方式,转为几进制,就使用数据不停的除以进制数,知道结果0,所有的余数,从后往前
浮点数表现形式
-
小数的整数位为0的时候,0可以省略
0.5--->.5
-
科学计数法
e---->10
1.23e2--->1.23*10^2---->123.0
1.23e-2---->1.23*10^-2----->0.0123
public class Class005_Radix { public static void main(String[] args) { System.out.println(0B10); System.out.println(010); System.out.println(10); System.out.println(0x10); System.out.println(0x1a); //其他进制转成十进制 System.out.println(0B101); //1*2^0 + 0*2^1 + 1*2^2 = 1+0+4 = 5 System.out.println(0101); //1*8^0 + 0*8^1 + 1*8^2 = 1+0+64 = 65 //十进制转成其他进制 System.out.println(0b1100); System.out.println(014); System.out.println(0xc); //练习 : 521 转为2,8,16进制 System.out.println(0.5); System.out.println(.5); //科学计数法 System.out.println(1.23e2); System.out.println(1.23e-2); } }
运算符
分类:
-
算术运算符
-
赋值运算符
-
比较运算符|关系运算符
-
逻辑运算符
-
条件运算符
-
位元素安抚
操作数:运算符左右两边的数据为操作数
表达式:运算符连接两边的操作数整体称为表达式 a+b
语句:;
是一个语句的结束
根据操作数的个数进行分类 : 一元运算符|单目运算符 : 操作数只有1个 ++ -- 正号 符号 二元运算符|双目运算符 : 操作数只有2个 + - * / ... 三元运算符|三目运算符 : 条件运算符
算数运算符 :
+
-
*
/
%
+
:
-
正号
-
加法运算
-
字符串的连接符 当+左右两边一旦出现字符串,+就作为字符串的连接符存在,将左右两边的数据连接成为一整个字符串作为结果
% : 取余 当第一个操作数<第二个操作数,结果为第一个操作数
++ -- 注意 : 当字符型参与运算,字符会先转为十进制的整数再参与运算
public class Class001_Operator { public static void main(String[] args) { System.out.println(); int i= +1; int j = 2; int m = 2; System.out.println("i = "+i); //"i = 1" System.out.println("j = "+j); System.out.println("m = "+m); System.out.println('a'+1); System.out.println("hello"+'a'+1); // "helloa1" System.out.println('a'+1+"hello"); // "98hello" System.out.println(1%5); //1 System.out.println(2%5); //2 System.out.println(3%5); //3 System.out.println(7%5); //2 } }
++自增 --自减 :
-
a++|++a ---> a = a+1;
-
a--|--a ---> a = a-1;
只影响操作数本身,不影响其他结果 ++放在操作数的前面或者后面都是自身+1 --放在操作数的前面或者后面都是自身-1
影响操作数自身的值还影响其他结果(赋值|运算|输出) ++|--放在操作数的前面,先自身+1|-1,然后再去运算 ++|--放在操作数的后面,先参与运算,然后自身+1|-1
public class Class002_Operator { public static void main(String[] args) { int a = 5; ++a; //a=a+1; System.out.println(a); //6 a--; System.out.println(a); //5 //影响其他结果 int b = ++a; System.out.println(a); //6 System.out.println(b); //6 //sout-->a=6 a=a-1 System.out.println(a--); //6 System.out.println(a); //5 int c = 1+ a++; System.out.println(a); //6 System.out.println(c); //6 int i = 3; int n = i++ + ++i + i++ + ++i + i++; System.out.println(i); //8 System.out.println(n); //27 //练习 int k=20; int j=8; int totle = k++ + j-- + --j + ++k + k++ + j++ + k-- + --k + j++; System.out.println("k="+k+",j="+j+",totle="+totle); //21 8 135 } }