1.软件使用
2.项目结构
3.数组定义格式
3.1数组概述
3.2数组初始化之动态初始化
//动态初始化:初始化时只指定数组长度,由系统为数组分配初始值
格式:数据类型 []变量名=new 数据类型[数组长度];
范例:int[] arr=new int[3];
3.3数组初始化之静态初始化
3.4数组元素访问
3.5数组操作的两个常见小问题
3.6内存分配
3.7多个数组指向相同内存图
当两个数组指向相同时,任何一个数组修改了堆内存的数据,那么另一个数组去访问数值是发生了改变了的
3.8数组遍历
通过for循环来遍历,如果数组中元素太多不方便数的时候
我们可以通过数组名.length来获取数组元素数量
3.9数组获取最值
4.方法
4.1不带参数方法的定义和调用
4.1.1方法定义
4.1.2方法调用
4.1.3方法练习
package hello;
import java.util.Scanner;
public class test01{
public static void main(String[] args) {
max();
}
public static void max()
{
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
int c=a>b?a:b;
System.out.println(c);
}
}
4.2带参数方法的定义和调用
4.2.1定义
4.2.2调用
4.2.3带参数方法练习
package hello;
public class test01{
public static void main(String[] args) {
int a=10;
int b=20;
max(a,b);
}
public static void max(int a,int b){
int c=a>b?a:b;
System.out.println(c);
}
}
4.3带返回值方法的定义和调用
4.3.1方法定义
4.3.2方法调用
4.4方法注意事项和通用格式
方法不能嵌套定义
void表示无返回值,可省略return,也可单独的书写return,后面不加数据
4.5方法重载
4.6方法的参数传递
4.6.1基本类型
4.6.2引用类型
4.6.3练习_数组最大值
//定义一个方法来获取数组中的最大值
package hello;
public class test01{
public static void main(String[] args) {
int[] arr= {25,12,56,24};
int max=max(arr);
System.out.println(max);
}
public static int max(int[] arr){
int max=arr[0];
for(int i=1;i
max=arr[i];
}
return max;
}
}
5.Debug
6.案例
6.1案例一_不死神兔
package hello;
public class test01{
public static void main(String[] args) {
int[] arr=new int[20];
arr[0]=1;
arr[1]=1;
for(int i=2;i
arr[i]=arr[i-2]+arr[i-1];
}
System.out.println(arr[19]);
}
}
6.2案例二_百钱百鸡
6.3案例三_数组相同?
package hello;
public class test01{
public static void main(String[] args) {
int[] arr1= {11,12,13,14};
int[] arr2= {11,12,13,14};
boolean x=isSame(arr1,arr2);
System.out.println(x);
}
public static boolean isSame(int[] arr1,int[] arr2)
{
if(arr1.length!=arr2.length)
return false;
else
for(int i=0;i
if(arr1[i]!=arr2[i])
return false;
}
return true;
}
}
7.面向对象
7.1类的定义
成员方法前不加static
7.2对象的使用
7.2.1对象内存图(多个对象指向相同)
7.2.2成员变量和局部变量
7.3封装
7.3.1private关键字的使用
7.3.2this关键字
7.4构造方法
构造方法是一种特殊的方法
作用:用来创建对象
功能:主要是完成对象数据的初始化
格式:修饰符 类名(参数){ }
8.字符串
8.1API
API是应用编程接口,Java中的API指JDK提供的各种功能的Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可
8.2String
Java程序中所有的双引号字符串,都是String类的对象
字符串不可变,它们的值在创建后不能被修改,但是它们可以被共享
字符串效果上相当于字符数组(char[]),但底层是字节数组(byte[])
8.2.1String构造方法
public class string {
public static void main(String[] args) {
String s1=new String();
System.out.println(“s1:”+s1);
char[] chs= {‘a’,’b’,’c’};
String s2=new String(chs);
System.out.println(“s2:”+s2);
byte[] bys= {97,98,99};
String s3=new String(bys);
System.out.println(“s3:”+s3);
String s4=”abc”;
System.out.println(“s4:”+s4);
//推荐使用直接赋值的方式
}
}
8.2.2String对象的特点
8.2.3字符串的比较
字符串是对象,它比较内容是否相同,是通过一个方法来实现的,这个方法叫做equals()
格式形如s1.equals(s2),结果返回TRUE或FALSE
8.2.4案例_用户登录
package first;
import java.util.Scanner;
public class string {
public static void main(String[] args) {
String s=”110”;
String psw=”123”;
Scanner sc=new Scanner(System.in);
for(int i=0;i<3;i++){
System.out.println(“请输入账号:”);
String a=sc.nextLine();
System.out.println(“请输入密码:”);
String b=sc.nextLine();
if(s.equals(a)&&psw.equals(b)) {
System.out.println(“登陆成功!”);
break;
}
else {
if(i==2)
System.out.println(“您的机会已用光,请及时联系管理员”);
else
System.out.println(“您还有”+(2-i)+”次机会”);
}
}
}
}
8.2.5案例_遍历字符串
package first;
import java.util.Scanner;
public class string {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println(“请输入一个字符串:”);
String s=sc.nextLine();
for(int i=0;i
}
}
}
8.2.6案例_统计字符次数
package first;
import java.util.Scanner;
public class string {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println(“请输入一个字符串:”);
String s=sc.nextLine();
int a=0;
int b=0;
int c=0;
for(int i=0;i
a++;
}
else if(s.charAt(i)>=’a’&&s.charAt(i)<=’z’) {
b++;
}
else if(s.charAt(i)>=’0’&&s.charAt(i)<=’9’) {
c++;
}
}
System.out.println(“大写字母的个数为:”+a);
System.out.println(“小写字母的个数为:”+b);
System.out.println(“数字的个数为:”+c);
}
}
8.2.7案例_拼接字符串
package first;
public class string {
public static void main(String[] args) {
int[] arr= {1,2,3};
String str=arrayToString(arr);
System.out.println(str);
}
public static String arrayToString(int[] arr) {
String s=””;
s+=”[“;
for(int i=0;i
s+=arr[i];
s+=’,’;
}
else
s+=arr[i];
}
s+=”]”;
return s;
}
}
8.2.8案例_字符串反转
package first;
import java.util.Scanner;
public class string {
public static void main(String[] args) {
@SuppressWarnings(“resource”)
Scanner sc=new Scanner(System.in);
System.out.println(“请输入一个字符串:”);
String s=sc.nextLine();
String str=reverse(s);
System.out.println(str);
}
public static String reverse(String s) {
String s1=””;
for(int i=s.length()-1;i>=0;i—){
s1+=s.charAt(i);
}
return s1;
}
}
8.3StringBuilder
8.3.1StringBuilder概述
StringBulider是一个可变的字符串类。我们可以把它看成是一个容器,这里的可变指的是StringBulider对象中的内容是可变的!
8.3.2StringBuilder构造方法
StringBuilder sb=new StringBuilder();
StringBuilder sb2=new StringBuilder(“hello”);
8.3.2StringBuilder添加和反转方法
sb.reverse();
sb.append(“hello”).append(“world”).append(“java”);
//因为返回的是对象,所以可以继续调用
8.3.3StringBuilder和String相互转换
String s=sb.toString();
StringBuilder sb=new StringBuilder(s);
8.3.4案例_拼接字符串
package first;
public class StringBuliderDemo {
public static void main(String[] args) {
int []arr= {1,2,3,4};
String str=arrayToString(arr);
System.out.println(str);
}
public static String arrayToString(int[] arr) {<br /> StringBuilder sb=new StringBuilder();<br /> sb.append("[");<br /> for(int i=0;i<arr.length;i++)<br /> {<br /> if(i!=arr.length-1) {<br /> sb.append(arr[i]);<br /> sb.append(",");<br /> }<br /> else<br /> sb.append(arr[i]);<br /> }<br /> sb.append("]");<br /> String s=sb.toString();<br /> return s;<br /> }<br />}<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/29081561/1654591605940-f46f63f1-871a-442d-8f13-875c87a3e587.png#clientId=uc0e8888c-ef56-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=126&id=u1d2ba6b9&margin=%5Bobject%20Object%5D&name=image.png&originHeight=195&originWidth=798&originalType=binary&ratio=1&rotation=0&showTitle=false&size=100639&status=done&style=none&taskId=ue9669cf1-7a30-4a67-9584-f01ba435f22&title=&width=517.3636474609375)
9.集合基础
集合类的特点:提供一种可变的存储模型,存储的数据容量可以发生改变