day00:
0.基础概念:
Java体系:
1.Java程序设计语言
2.各种平台上的Java虚拟机
3.Java API类库
4.一系列辅助工具,如javac
JVM、JDK、JRE:
JVM : 各种平台上的java虚拟机
JDK = 1+2+3+4 (java开发工具包)
JRE = 2+3 (java运行时的环境)
1.程序编译:
- .java文件 编译为 class文件 (javac.exe)(文件.java)
- class文件 解析为 可识别文件(java.exe)(文件)
public 唯一,且后面的类名要与文件名一致
2.数据类型:
- bool-----boolean(1位 bit)
- byte类型(1字节 Byte)
3.数组:(引用数据类型,元素用引用方式存储)
A:int [ ] arr; 定义了一个int类型的数组,数组名是arr。(推荐)(c不行)
B:int arr [ ]; 定义了一个int类型的变量,变量名是arr数组。
C 初始化:
动态初始化: 只给长度,系统给初始化值。
数据类型 [ ] 数组名 = new 数据类型 [数组长度]
int [ ] arr = new int [3];
静态初始化: 给初始化值,由系统决定长度。
int [ ] arr = {1,2,3};
EX:字符串数组:
String names[] = new String[2];
names[0] = “ABC”;
names[1] = “DEF”;
或者:
String names[] = {“ABC”,“DEF”};
for(int i=0;i<arr.length;i++){
arr[i]=sc.nextInt(); //#####循环输入数组
}
D 导包:
Java.util.Arrays
double [ ] b = Arrays.copyOf(数组,index);
E:ava.util.Arrays类:
- 通过 fill() 方法给数组赋值
- 通过 sort() 方法按升序排序
- 通过 equals() 方法比较数组中元素值是否相等
- 通过 binarySearch() 方法对排好序的数组2分法查找
4.字符串:
String类:
每个“ ”定义的字符串都是一个String类的对象,可以通过该类的构造方法来创建字符串。
需导入***java.lang**包
更类似于C++的 char类型
char类型不可以赋值为空,String可以为空。
char进行+ -时视作ASCII码加减,String的+视为字符连接。
A 实现:
String str = "Hello";
StringBuilder b = new StringBuilder(); b.append(char); b.append(string);
上述可用.toString()方法转化为String对象
B 方法:
1. substring(begin_index) 截取字符串
2. substring(begin_index,end_index) 同上,左闭右开
3. trim() 消除空格
4. replace() 替换成新的字符或字符串
5. startWith(string) / endWith(string) 判断是否以指定内容开始或结束
6. equals(string) 区分大小写判断相等 ***不能用==,否则比较的是内存地址***
7. equalsIgnoreCase(stirng) 无视大小写判断相等
8. charAt(index) 获取字符串指定index的字符
C 字符串/字符数组互换:
String–char[]:
char [] ch = string.toCharArray();
char[]–String:
String str = String.valueOf(ch);
5.方法(函数):
- 可以重载:
虽然方法名字一样,但根据参数的不同,可以使用不同的同名方法。 - 可以使用可变参数的形参:
public void test(String...books){
//内容,形参中间带3个点 ...
}
6.输入输出:
快捷键输出:syso & sout & souf alt+/
-
System.out : 标准的输出设备 System.in : 标准的输入设备。
-
输入:
Scanner in = new Scanner(System.in); //扫面键盘。
String st = in.nextline(); //从键盘获取一个字符串。
int data1 = in.nextInt(); //从键盘获取一个整数。
- 输出:
System..print(“hello world-1”); //打印不加换行。
System.out.println(“hello world-2”); //打印自动换行。
System.out.printf(“%s-%d-%c-%s-%f”,“张三”,20,‘m’,“英语”,59.9); //格式化字符打印 %d 整数 %s 字符串 %c符号 %f 浮点数。
- 格式化输出:(转自:原文地址 侵删)
public class TestNumber
{
public static void main(String[] args)
{
String name = "盖伦";
int kill = 8;
String title = "超神";
String sentence = name + " 在进行了连续 " + kill + " 次击杀后,获得了 " + title + " 的称号 ";
//直接使用+进行字符串连接,编码感觉会比较繁琐,并且维护性差,易读性差
System.out.println(sentence);
String sentenceFormat = "%s 在进行了连续 %d 次击杀后, 获得了 %s 的称号%n";
//格式化输出,%s表示字符串,%d表示数字,%n表示换号
System.out.printf(sentenceFormat, name, kill, title);
System.out.format(sentenceFormat, name, kill, title);
//format和printf能够达到一模一样的效果
int year = 2020;
System.out.format("%d%n",year); //用%n或\n没差
//直接打印数字
System.out.printf("%8d%n",year); //用printf还是format没差
//总长度为8,默认右对齐
System.out.printf("%-8d%n",year);
//总长度为8,默认左对齐
System.out.printf("%08d%n",year);
//总长度为8,不够补0
System.out.printf("%,8d%n",year*10000);
//千位分隔符
System.out.format("%.2f%n",Math.PI);
//小数点位数
}
}
7.强制类型转换:
varable.parseVarable(str);