数组
1.数组的声明(只创建了引用名,未创建数组对象)
int[] a; Student [] s;
2.数组元素的初始化
int[] a={1,2,3}; int [] b=new int[4];Student [] s=new Student[3]; s[0]=new Student();
3.数组变量的length属性
a.length int [][] a=new int[3][]; a[0]=new int[5]; a[0].length
4.数组的遍历(两种方式:for、for-each)
int[] a = {1,2,3,4,5};
for(int num:a){
System.out.println(num);
}
5.数组常见错误
(1)数组越界,int[] a = new int[3];//a[3]
(2)变量声明时指明元素数组个数//int[3] x; int[3][] a;int[3][4] b;int[3] z = {1,2,3},动态数组
(3)多维数组的创建错误,例如:int[][] x = new int[][3]
6.示例杨辉三角
java"> int[][] arr = new int[10][];for (int i = 0; i < arr.length; i++) {arr[i] = new int[i+1];//动态数组分配空间arr[i][0] = arr[i][i] = 1;for (int j = 1; j < i; j++) {arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}}for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.print(arr[i][j] + " ");}System.out.println();}
字符串
1.字符串介绍
是由字符组成的串/序列,属 class,类型标识:String 如:"abc"、"abc\n,鉴于字符串字面量使用频率非常频繁,Java 将字符字面量存放于常量池中。在大多数情况下能够带来内存优化和性能提升的好处。
2.常见运算
(1)==和equals()
==对于一般的数据类型是比较值是否相等,对于引用类型则是判断是否是两个相同的对象;
equals()常常在子类中重写用来判断值是否相等。
String s1,s2,s3,s4;s1="abc"; s2="abc";s3=new String("abc"); s4=new String("abc");s1==s2 、 s1.equals(s2) 、 s1.equals(s3) 为真s1和s2没有创建对象比较的是值,s3==s4为假
(2)连接运算+
String s1="abcd"+1+2+3; //s1 的值是"abcd123"
String s2=1+2+3+"abcd"; //s2 的值是"6abcd"
String s3=1+true+"abcd"; //编译错,why?
- 在 Java 中,
+
运算符有两种作用:一是用于数值类型的加法运算,二是用于字符串的拼接操作。 - 对于数值类型,
+
要求操作数必须是数值类型,如int
、double
等,而不能是布尔类型。在表达式1 + true
中,1
是int
类型,true
是布尔类型,这两种数据类型不支持直接使用+
运算符进行相加操作,因此会导致编译错误。 - 即使
1 + true是合法的也不能完成字符串的拼接,因为
只有当+
运算符的一个操作数是字符串类型时,才会将其他操作数转换为字符串并进行拼接。
3.字符串变量.方法()
String str = "abc";int n = str.length(); //n 获得 str 的长度 char ch = str.charAt(0); //ch 获得 str 的第 1 个字符 'a‘String sub=str.substring(0,1); //sub 获得 str 的字串“ a”String.format(“%9.2f”,12.3); // 以 9 位宽度 2 位小数形式输出浮点数“
4.注意事项
(1)null 和空串("")不同;
"A"和'A'是截然不同的两个数据。
字符数组和字符串不同,字符数组也无'\0'结束标志
String 对象是只读的,即 String 的内容从不改变。
工具的使用
1.日期时间相关类
(随用随查),这里不做介绍
可以看看这篇博客:
http://【Java中的日期时间类详解(Date、DateFormat、Calendar) - CSDN App】https://blog.csdn.net/weixin_65752158/article/details/140182763?sharetype=blog&shareId=140182763&sharerefer=APP&sharesource=2302_79648928&sharefrom=link
2.随机数类:java.util.Random
Random r= new Random();
int b = r.nextInt(10);//0<=b<=10
double c = r.nextDouble();//0<c<1.0
3.示例产生5位随机验证码
java"> // 首先创建一个Random对象来生成随机数。// 然后通过random.nextInt(90000)生成一个 0 到 89999 之间的随机数,// 再加上 10000,确保得到一个五a位数的随机数。最后将这个随机数打印出来Random a = new Random();int randomNumber = a.nextInt(90000) + 10000;System.out.println("5 位随机验证码:" + randomNumber);
面向对象程序设计基础
1.面向对象和面向过程
(1)结构化程序设计
核心思想:以功能为核心,系统是功能模块的组装
结构化:将问题求解看作功能模块,模块可拆解可组合
(2)面向对象是将软件系统视为现实世界(需求)的仿真。现实世界由一组对象组成,系统的功能表现为一组对象间的交互。
2.类和对象
(1)类(class)
是既包括数据又包括作用于数据的一组操作的封装体
(2)类的封装性、继承性和多态性
类的封装性
为类的成员提供公有、缺省、保护和私有等多级访问权限,目的有隐藏类中的私有的
成员和类中方法的实现细节。
类的继承性
提供从已存在的类创建新类的机制,继承使一个新类自动拥有被继承类的全部成员。
被继承类称为父类,通过继承产生的新类称为子类。
类的多态性:重载和重写
(3)类的定义和使用
声明类语法: [ 修饰符 ] class 类 < 泛型 > [extends 父类 ] [implements 接口列表 ]{成员变量的声明 ;成员方法的声明及实现 ;}1. 成员变量的声明如: public class Date1// 类声明{int year, month, day;// 声明成员变量}2. 成员方法的声明及实现语法: [ 修饰符 ] 返回值类型 方法 ([ 参数列表 ]) [throws 异常类 ]{语句序列 ;[return [ 返回值 ]];}例如: public class Date1