引用 >
引用>加空格
分割线 --- ***
超链接
列表 1.空格 输入下级,先删除在1.空格 无序 -空格
我
先删除再1.空格
下级 也可以直接按Tab键
是
1️⃣Scanner类
API 的概述和使用步骤08:00
API应用程序接口,就是类的中文文档 &字典 1.先看包路径.Java. La ng 2.看构造方法摘要.一个类通常不能直接使用,要想使用要先根据它new一个对象 3.看方法摘要
Scanner概述及其API文档 06:17
Scanner类的功能:可以实现键盘输入数据,到程序当中,第一个字母是大写就是一个类.
引用类型的一般使用步骤:
导包 import 包路径.类名称;
如果需要使用的目标类,和当前类位于同一个包下,则可以省略导包语句不写.
只有Java. Lang包下的内容不需要导包,其他的包都需要import语句
创建 类名称 对象名 = new 类名称;
使用 对象名.成员方法名()
使用步骤9:00
//1.导包
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// 2.创建 备注:System.in 代表从键盘输入
Scanner sc = new Scanner(System.in);
//3.获取键盘输入 调用的方法有返回值.所以要用一个变量进行接收
int num = sc.nextInt();
System.out.println("输入的int数字是" + num);
//4.获取键盘输入的字符串
String str = sc.next();
System.out.println("输入的字符串是 " + str);
}
}
//键盘输入的所有都是字符串,next只是转换了返回int 所有就是 nexInt
练习一,键盘输入两个数05:32
题目: 键盘输入两个int数字,并且求出和值.
思路:
既然需要键盘输入,那么就用Scanner
Scanner的三个步骤:导包,创建,使用
需要的是两个数字,所有要调用两次nextInt方法
得到了两个数字,就需要加在一起
将结果打印输出
练习二.05:07 练习二. 键盘输入三个数字,然后求出其中的最大值
收录的英语
Java. Lang包路径
Scanner
键盘输入
new
创建
import
关键字导包
System.in
代表从键盘输入
2️⃣匿名对象
1️⃣匿名对象的说明07:45
创建对象的标准格式:类名称 对象名 = new 类名称();
匿名对象就是只有右边的对象,没有左边的名字和赋值运算符.new 类名称();
使用匿名对象直接再后面点他的对象点他的方法
new Person().name="赵又挺";
new Person().ShowName(); //我叫:null
注意事项:匿名对象只能使用唯一的一次,下次再用不得不再创建一个对象.使用建议:如果确定只使用唯一的一次,就可以用匿名对象
public class Test {
public static void main(String[] args) {
//左边的one就是对象的名字
Person one = new Person();
one.name = "高圆圆";
one.ShowName(); //我叫高圆圆
System.out.println("===============");
//匿名对象
new Person().name="赵又挺";
new Person().ShowName(); //我叫:null
}
}
package Test02;
public class Person {
String name;
public void ShowName(){
System.out.println("我叫:"+name);
}
}
2️⃣匿名对象作为方法的参数06:15
public class Test {
public static void main(String[] args) {
//1.普通方式
// Scanner sc= new Scanner(System.in);
// int num = sc.nextInt();
//2.匿名对象的方式
// int num = new Scanner(System.in).nextInt();
// System.out.println("输入的是"+num);
//3.使用一般写法传入参数
// Scanner sc = new Scanner(System.in);
// methodParam(sc);
//4.使用匿名对象直接传参
methodParam(new Scanner(System.in));
}
public static void methodParam(Scanner sc){
int num = sc.nextInt();
System.out.println("输入的是:"+num);
}
public static Scanner methodReturn(){ //匿名对象作为返回值使用
return new Scanner(System.in); //匿名对象作为返回值使用
}
}
3️⃣英语收录
Person 人
name 名字
one 一
show 显示,说明,演出
method 方法
param 参数
num 数词
return 返回值
util 需要导包
3️⃣Random类
Random概述和基本使用 06:16
用来产生随机数字的
导包
创建
使用
获取一个随机的int数字(范围是int所有范围,有正负两种): int num=r.nextInt()
获取一个随机的int数字(参数代表了范围,左闭右开区间):int num = r.nextInt(3) //实际上代表的含义是:[0,3) 也就是0~2
生产指定范围的随机数03:56
练习一:生产1-n之 06:14
根据int变量n的值,来获取随机数字,范围是[1,n],可以取到1也可以取到n
如果写10,那么就是0~9,然而想要的是1~10 整体+1r.nextInt(3) +1;"有返回值的方法需要变量接收"
练习二:猜数字小游戏 12:16
英语收录:
Random 随机数
4️⃣ArrayList集合
对象数组08.22
题目: 定义一个数组,用来存储3个Person对象.
数组有一个缺点:一旦创建,程序运行期间长度不可以发生改变. 所以要学习ArrayList集合,集合的长度可以随意变化
集合概述和基本使用11.41
看三点 .尖括号叫做泛型,用一个字母占位表示
泛型: 也就是装在集合当中的所以元素,全都是统一的什么类型.
注意:泛型只能是引用类型,不是基本类型.直接打印得到的不是地址值,而是内容, add添加一定会成功.其他的集合add就不一定成功.
集合的常用方法13.3
list.add(); 增
get() 查 从集合中获取元素,索引从0开始
set() 改
remove() 删 返回值是被删除的人是谁
size() 获取集合长度,返回集合中元素个数
//遍历集合
//遍历集合
for (int i = 0; i
System.out.println(list.get(i));
}
集合存储基本数据7.1
如果希望向集合ArrayList 当中存储基本类型数据,必须使用基本类型对应的"包装类"
基本类型包装类(引用类型,包装类都位于java.Lang包下)
byteByte
short Short
int Integer [特殊]
Long Long
float Float
doubleDouble
charCharacter [特殊]
booleanBoolean
自动装箱自动拆箱 从JDK1.5开始
自动装箱就是:基本类型转包装类型
自动拆箱就是:包装类型转基本类型
练习一:存储随机
题目:生成6个1~33之间的随机整数,添加到集合.并遍历集合
练习二:存储自定义
题目:自定义4个学生对象,添加到集合,并遍历
练习三:按指定格式
题目:定义以指定格式打印集合的方法(ArrayList类型作为参数),使用{}扩起来集合,使用@分隔每个元素格式参照:{元素@元素@元素}
练习四:筛选集合
题目: 用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合当中.要求使用自定义的方法来实现筛选
英语收录:
age
two
three
Array 数组.
List
remove
size
Integer
Character
5️⃣String类
字符串概述05.59
java.Lang.String类代表字符串
API当中说:Java程序中的所有字符串字面值(如"abc")都作为此类的实例实现
其实就是说:程序当中所有的双引号字符串,都是String类的对象.(就算没有new,也照样是.)
字符串的特点:
字符串的内容永不可变[重点]
正是因为字符串不可变,所以字符串是可以共享使用的.
字符串效果上相当于是char[]字符数组,但底层原理是byte[]字节数组.
字符串的构造方法和直接创造9.54
创建字符串的常见3+1种方式.
三种构造方法:
public String(): 创建一个空白字符串,不含有任何内容
String str1 = new String(); //小括号留空,说明字符串什么内容都没有
System.out.println("第一个字符串:"+str1);
public String(char[] array):根据字符数组的内容,来创建对应的字符串.
char[] charArray = {'A','B','C'};
String str2 = new String(charArray);
System.out.println("第二个字符串:"+str2);
public String(byte[] array):根据字节数组的内容,来创建对应的字符串.
byte[] byteArray ={97,98,99};
String str3 = new String(byteArray);
System.out.println("第三个字符串:"+str3);
一种直接创建 String str="Hello" //右边用双引号就是直接创建 注意:直接写双双引号,就是字符串对象
字符串的常量池12.55
(所有的引用类型都能放一个null)
字符串常量池:程序当中直接写上的双引号字符串,就在字符串常量池中.换句话说就是双引号写的才在池中
对于基本类型来说,==是进行数值比较
对于引用类型来说,==是进行地址值比较
字符串常量池在堆中
对于引用类型来说,==进行的是地址值的比较
双引号直接写的字符串在常量池中,new的不在池中
字符串的比较相关方法13.12
==是进行对象的地址值比较,如果确定需要字符串的内容比较,可以使用两个方法
public boolean equals(Object obj):参数可以是任何对象,只有参数是一个字符串并且内容相同的才会给true:否则返回false
注意事项:
任何对象都能用Objec进行接收.
equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样.
如果比较双方一个是常量一个是变量,推荐把常量写在前面.
推荐: "abc".equals(str)
不推荐 : str.equals("abc")
严格区分大小写
public boolean equalsIgnoreCase(String str):忽略大小写,进行内容比较. 注意:只有英文字母区分大小写,其他都不区分大小写
sout."ABC".equalsIgnoreCase("abc")
字符串的获取相关方法10.19
public int length () :返回此字符串的长度。
int length ="asdasd".length();
System.out.println("字符串的长度是"+length);
public String concat (String str) :将当前字符串和参数字符串拼接成返回值的字符串
String str1="Hello";
String str2="World";
String str3=str1.concat(str2);
System.out.println(str3); //必然是创建了一个新的字符串
public char charAt (int index) :获取指定索引位置的单个字符.(索引从0开始)
char ch = "Hello".charAt(1);
System.out.println("在1号索引位置的字符是:" + ch);
public int indexOf (String str) :查找参数字符串在本来字符串当中出现的第一次索引位置 如果根本没有返回值就是-1
String original = "HelloWorldHelloWorld";
int index = original.indexOf("llo");
System.out.println("第一次索引值是" + index); //2
字符串的截取方法7.41
字符串不能发生改变,每当你觉得变了,必然是创建了一个新字符串
public String substring (int Index) :截取从参数位置一直到字符串末尾,返回新字符串.
String str1="HelloWorld";
String str2=str1.substring(5);
System.out.println(str1); //HelloWorld 原封不动
System.out.println(str2); //World 新字符串
public String substring (int begin, int end) :截取从begin开始,一直到end结束,中间的字符串. 备注:[begin,end) 包含左边,不包含右边
String str3=str1.substring(4,7);
System.out.println(str3); //oWo
字符串的转换相关方法9.47
public char[] toCharArray () :将当前字符串拆分成为字符数组作为返回值
char[] chars="Hello".toCharArray();
System.out.println(chars[0]); //H
System.out.println(chars.length); //5
public byte[] getBytes () :获取当前字符串底层的字节数组
byte[] bytes = "abc".getBytes();
for (int i = 0; i < bytes.length; i++) {
System.out.println(bytes[i]);
}
public String replace (CharSequence oldString, CharSequence newString) :将所有出现的老字符串替换成新的字符串,返回替换之后的结果新字符串
String str1="How do you do ?";
String str2 = str1.replace("o", "*");
System.out.println(str2); //H*w d* y*u d* ?
字符串的分割方法7.27
public String[] split(String regex) : 按照参数的规则,将字符串切分成若干部分.
注意事项:
split方法的参数其实是一个"正则表达式",今后学习
今天要注意的: 如果按照英文句点"."进行切分,必须写\\.(两个反斜杠)
String str1 = "aaa,bbb,ccc";
String[] array1 = str1.split(",");
for (int i = 0; i < array1.length; i++) {
System.out.println(array1[i]);
练习:按指定格式拼接字符5.37
题目:定义一个方法,把数组{1,2,3}按照指定个格式拼接成一个字符串。格式参照如下:[word1#word2#word3]。
练习:统计输入的字符串8.33
题目:键盘录入一个字符串,并且统计字符串中各种字符出现的次数. 种类有:大写字母/小写字母/数组/其他
英语录入:
String
Hello
equals
equalsIgnoreCase
length
concat
charAt
indexOf
substring
toCharArray
getBytes
replace
split
6️⃣static静态
静态static关键字概述7.58
一旦用了static关键字.那么这样的内容不在属于对象自己,而是属于类的,所有凡是本类对象,都共享同一份
关键字修饰成员7.50
如果一个成员变量使用了static关键字,那么这个变量不再属于对象自己,而是属于所在的类.多个对象共享同一份数据
one.room="101教室";这是代码room用了静态修饰符,在第一个人那里赋值教室,第二个人那里也会有教室.如果不在第一个人赋值教室,在第二个人哪里赋值教室,第一个人那里就会为空
这里还说到了学号,赋初值 用的 计数器思想
私有的 int id;//学号
私有的 静态 int idCounter = 0 ; //学号计数器,每当new了一个新对象的时候,计数器++
无参构造中 this.id = ++idCounter;
有参构造中 this.id = ++idCounter;
关键字修饰方法11.15
一旦使用static修饰成员方法,那么这就成为静态方法. 静态方法不属于对象,而是属于类的.
如果没有static关键字,那么必须首先创建对象,然后通过对象才能使用它.
如果有static 可以通过对象名进行调用,也可以直接通过类名称来调用. 不推荐对象名调用,推荐类名调用
对于本类当中的静态方法,可以省略类名称
无论是成员变量,还是成员方法.如果有了static,都推荐使用类名称进行调用
静态变量:类名称.静态变量
静态方法:类名称.静态方法();
注意事项:
静态不能直接访问非静态.原因是:因为内存中先有静态内容,后有非静态内容
静态方法中不能使用this this代表当前对象,通过谁调用的方法,谁就是当前对象.
静态static的内存图8.41
根据类名称访问静态成员变量的时候,全程和对象没有关系,只和类有关系.
栈 new Student one new Student two
堆 name age 0x66name age 0x99
方法区>>静态区 ,room 101教室
静态代码块4.49
静态代码块的格式:
public class 类名称{
static {
//静态代码块的内容
}
}
特点: 当第一次用到本类时,静态代码块执行唯一的一次.
静态内容总是优先于非静态,所以静态代码块比构造方法先执行.
静态代码块的典型用途:
用来一次性地对静态成员变量进行赋值.
英语录入:
room
Counter
this
id
static
public
class
7️⃣Arrays工具类
带有S的
java.util.Arrays是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见的操作.
public static String toString(数组) :将参数数组变成字符串(按照默认格式:[元素1,元素2,元素3...])
int[] intsArray = {10,20,30};
//将int[]数组按照默认格式变成字符串
String intstr = Arrays.toString(intsArray);
System.out.println(intstr); //[10, 20, 30]
public static void sort(数组):按照默认升序(从小到大)对数组的元素进行排序.
备注:
如果是数值,sort默认按照升序从小到大.
如果是字符串,sort默认按照字母升序
如果是自定义的类型,那么这个自定义的类需要有Comparable或者Comparator接口的支持(今后学习)
int[] array1= {2,1,3,10,6};
Arrays.sort(array1);
System.out.println(Arrays.toString(array1)); //[1, 2, 3, 6, 10]
题目:
请使用Arrays相关的API,将一个随机字符串中的所有字符升序排列,并倒序打印.
英语收录:
Arrays
toString
sort
Comparable
Comparator
8️⃣Math类
数学工具类10.08
java.util.Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算的相关的操作.
public static double abs(double a) :获取绝对值。
System.out.println(Math.abs(3.14)); //3.14
System.out.println(Math.abs(0)); //0
System.out.println(Math.abs(-2.5)); //2.5
public static double ceil(double num) : 向上取整.
System.out.println(Math.ceil(3.9)); //4.0
System.out.println(Math.ceil(3.1));//4.0
System.out.println(Math.ceil(3.0));//3.0
public static double floor(double num) : 向下取整.
System.out.println(Math.floor(30.1));//30.0
System.out.println(Math.floor(30.9));//30.0
System.out.println(Math.floor(31.0));//31.0
public static long round(double num) :四舍五入
System.out.println(Math.round(20.4));//20
System.out.println(Math.round(10.5));//11
Math.PI 代表近似的圆周率常量(double) 3.141592653589793
Math练习:小学数学真题
请使用 Math 相关的API,计算在 -10.8 到 5.9 之间,绝对值大于 6 或者小于 2.1 的整数有多少个?
分析:
英语收录:
abs
ceil
floor
round
PI
9️⃣常用API总结