基础七
-
1.线程之间共享进程获得的数据资源,所以开销小,但是不利于资源的管理和保护;进程执行开销大,但是能够很好的进行资源管理和保护 2.线程的通信速度更快,切换更快,因为他们共享同一进程的地址空间 3.一个进程可以有多个线程,线程是进程的一个实体,是CPU调度的基本单位
-
1.静态内部类才可以声明静态方法 2.静态方法不可以使用非静态变量 抽象方法不可以有函数体
-
常见的包构成:
java.awt: 包含构成抽象窗口工具集的多个类,用来构建和管理应用程序的图形用户界面 java.lang: 提供java编成语言的程序设计的基础类 java.io: 包含提供多种输出输入功能的类, java.net: 包含执行与网络有关的类,如URL,SCOKET,SEVERSOCKET, java.applet: 包含java小应用程序的类 java.util: 包含一些实用性的类
-
痛过ServletConfig接口的getInitParameter(java.lang.String name)方法可以获得Servlet的初始化参数。
-
抛出InterruptedExeption的代表方法有: java.lang.Object类的wait方法 Java.lang.Thread类的sleep方法 java.lang.Thread类的join方法
-
==:地址是否相等 equals:值相等 package Temp; import java.awt.*; import java.util.ArrayList; /* * @Author: jun * @Date:2023/1/25 0:12 * @概述: */ public class jichu001 { public static void main(String[] args) { String str1 = "abc"; String str2 = "abc"; String str3 = new String("abc"); String str4 = new String("abc"); System.out.println(str1 == str2);//true System.out.println(str1 == str3);//false System.out.println(str2 == str3);//false System.out.println(str3 == str4);//false System.out.println(str1 == str1);//true System.out.println(str1.equals(str2));//true System.out.println(str2.equals(str3));//true System.out.println(str3.equals(str4));//true System.out.println(str3.equals(str3));//true } }
-
package Temp; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; /* * @Author: jun * @Date:2023/1/26 23:57 * @概述: */ class A{ public int func1(int a,int b){ return a-b; } } class B extends A{ public int func1(int a ,int b){ return a+b; } } //牛客的一道题,总结说就是“编译看左边,运行看右边” // 也就是编译时候,会看左边引用类型是否能正确编译通过,运行的时候是调用右边的对象的方法 public class jichu002 { public static void main(String[] args) { A a = new A(); B b = new B(); System.out.println(a.func1(10, 10)); System.out.println(b.func1(10, 10)); } }
-
重载:同名不同参,返回值无关 覆盖/重写:同名同参
-
代码随想录(代码随想录 (programmercarl.com))
-
package Temp; import java.util.Scanner; /* * @Author: jun * @Date:2023/1/30 0:03 * @概述: */ public class niuke004 { //求x的n次方 static int function01(int x, int n){ int result = 1;//把结果赋值为1是为了表示所有的数的0次方都是1 for (int i = 0; i < n; i++) {//循环n次中每次的result都是取了n-1次方的结果 result = result * x; } return result;//返回x的n次方 } static int recursive(int x, int n){ if (n == 0){ return 1; } return x*recursive(x,n-1); } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //使用普通的for循环计算x的n次方结果 System.out.println("使用普通的for循环计算x的n次方结果"); System.out.println("输入x的值:"); int x = scanner.nextInt(); System.out.println("输入n的值:"); int n = scanner.nextInt(); System.out.println("result="+function01(x,n)); System.out.println("_________________"); //使用递归的算法解决该题 System.out.println("使用递归的算法解决该题"); System.out.println("recursive result="+recursive(x,n)); } }
package Temp;
import java.util.Scanner;
/*
* @Author: jun
* @Date:2023/1/30 12:14
* @概述:
*/
public class JumpFloor {
public static int function(int target){
if (target == 1 || target == 2){
return target;
}
int one = 1;
int two = 2;
int sum = 0;
for (int i = 3; i <= target; ++i) {
sum = one + two;
one = two;
two = sum;
}
return sum;
}
public static void main(String[] args) {
//斐波那契数爬楼梯
Scanner scanner = new Scanner(System.in);
System.out.println("输入楼梯层数:");
int nextInt = scanner.nextInt();
System.out.println("匹配:"+function(nextInt));
}
}