0. 基础知识
编码
1. ascii码 128个 1个字节
2. gbk(国标码) 中文、日文、韩文 2个字节
3. unicode(万国码) ucs-2(16bit --可满足日常大多数字符) usc-4(32bit --生僻字符)
4. utf-8 可变长度的unicode
英文: 8 bit 1Byte
欧洲文字: 16 bit 2Byte
中文: 24 bit 3Byte
基础数据类型
int: 4Byte 21亿~-21亿
byte: java中最小数据单元 1Byte -128~127
short 短整数: 2Byte -32768~32767
long 长整数: 8Byte -2^64~2^64-1
long 型常量太大结尾需加 "L" 。(常量默认为 int 型)
double:双精度小数。 8Byte。 最多保留至小数点后17位。
float: 单精度小数。4Byte。 最多保留至小数点后8位。
float型小数常量结尾需加 “f” 或 “F” 。 (小数默认为 double 型)
char:字符型。 2Byte 。unicode标准。 单引号引起来。
boolean:布尔型。 1Byte 。
数据类型转换
1. !!!待补充……
2. 不同数据类型计算:小的转换成大的,得到的结果是大的数据类型。大的数据类型赋值给小的数据类型必须强转。
3. 特殊的byte、short、char
计算时首先转化为 int 型,再进行计算,这样是安全的。
byte + byte = int
结果至少是int
逻辑运算符
&& 且
|| 或
! 非
1.创建类
/*
* Hello.java文件
* 类源文件名字需与类名一致
*
* 这是一个文件注释,可帮助生成api文件
*
* java最小执行单位是一个类
**/
public class Hello{
public static void main(String[] args){
System.out.println("Hello world"); //idea 中 psvm sout 可快捷输入
/*
这是多行注释
*/
}
}
System.out.println(); 结尾默认输出一个 \n
2.各种变量
int
double
String
boolean ( false ture )
3.String相关
/*
* VarString.java文件
**/
public class VarString {
public static void main(String[] args) {
String s1 = "曹mj";
//字符串的拼接
String s2 = "麻将";
System.out.println(s1 + s2); //运算结果是 曹mj麻将
System.out.println(1 + 1 + s1); //运算结果是 2曹mj
int a = 10;
int b = 30;
System.out.println("a + b = "+ a+b); //运算结果是 a + b = 1030 ->做了拼接
System.out.println("a + b = "+ (a+b));//运算结果是 a + b = 40
}
}
3.用户输入
Scanner:扫描器
先创建扫描器,记得导包 ,导包要写在类声明上面
Scanner sc = new Scanner(System.in);
/**
* 导包需写在类声明的上面
* idea在编写中会辅助程序员自动进行导包
*/
import java.util.Scanner;
public class TestScanner {
public static void main(String[] args) {
// 1.创建一个扫描器
Scanner sc = new Scanner(System.in);
// 2.使用扫描器获取用户输入的内容
String s = sc.nextLine(); //获取字符串
System.out.println(s);
int a = sc.nextInt(); // 获取整数
System.out.println(a+1);
double d = sc.nextDouble();//获取小数
System.out.println("d = "+d);
/*
* 这里一开始我是想按 整数 小数 字符串 进行输入的
* 结果我发现在输入完小数后程序便终止了
* 实验验证,原因是 “小数后的回车键被读入”
**/
}
}
4. if 语句
if ( 条件1 ){
……
}else if( 条件2 ){
……
}else if( 条件3 ){
……
} else { …… }
import java.util.Scanner;
public class TestIf {
public static void main(String[] args) {
System.out.println("请告诉我你的年龄:");
Scanner sc = new Scanner(System.in);
//获取钱, 比较是否大于20
double ye = sc.nextDouble();
if (ye > 20){
System.out.println("比20大");
}else if(ye == 20){
System.out.println("跟20一样大");
}else{
System.out.println("比20小");
}
System.out.println("条件判断结束");
}
}
5. switch
switch ( 变量 ){
case 值1:
xxxx
break;
case 值2:
xxxx
break;
……
default:
xxxx
}
如果没有break,会产生case穿透现象。
一个case被匹配成功,后面的case就不匹配了,但是会执行里面的代码(所以注意break)
常用的还是if。
6. 循环
在java中提供了三种循环:
1. while循环
2. for循环
3. do…while循环
while循环
while( 条件 ){
……(循环体)
} //条件为真时执行
for( 语句1;语句2; 语句3){
……(循环体)
}
do{
……(循环体)
} while( 条件 ) ; // 若条件成立,则再执行一遍循环体
7. 数组
类型[] 数组名 = new 类型[大小];
类型[] 数组名 = {数据, 数据, 数据……}
类型[] 数组名 = new 类型[]{数据, 数据, 数据……};
array.length 可获取数组长度。