有哪些java教程推荐,零基础入门,讲得比较详细,通俗易懂,比如视频或为文档
上b站找个教程看完,跟着敲代码,基本就可以了
强引用
之前我们使用的大部分引用实际上都是强引用,这是使用最普遍的引用。比如下面这段代码中的object和str都是强引用
Object object = new Object();
String str = "StrongReference";
软引用:
对象处在有用但是非必须的状态。
只有当内存空间不足时,GC会回收该引用的对象的内存。
可以用来实现高速缓存。
String str = new String("abc"); // 强引用。
SoftReference<String> softRef = new SoftReference<String> (str); // 软引用
弱引用:
非必须的对象,比软引用更弱一些。
GC 时会被回收。
被回收的概率也不大,因为GC线程的优先级比较低。
适用于引用偶尔被使用且不影响垃圾收集的对象。
虚引用:
不会决定对象的生命周期。
任何时候都可能被垃圾收集器回收。
跟踪对象被垃圾收集器回收的活动,起哨兵的作用。(垃圾回收要开始的时候,会先收集这类对象)。
必须和引用队列Reference Queue 联合使用。
推荐适合零基础学习Java的教程: 1. 零基础学Java,网易云课堂 https://study.163.com/courses-search?keyword=java&searchType=1 2. Java入门课,慕课网 https://www.imooc.com/learn/26 3. 廖雪峰Java教程 https://www.liaoxuefeng.com/wiki/1252599548343744 4. 菜鸟教程Java入门 https://www.runoob.com/java/java-tutorial.html
针对输入字符串中各个类别字符的个数的问题,可以参考以下代码,先从控制台输入一行字符串,然后统计其中的数字、字母、空格、其他字符数量,并输出。
import java.util.Scanner;
public class CharCount {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一行字符串:");
String str = scanner.nextLine();
int digitCount = 0;
int letterCount = 0;
int spaceCount = 0;
int otherCount = 0;
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (Character.isDigit(ch)) {
digitCount++;
} else if (Character.isLetter(ch)) {
letterCount++;
} else if (Character.isSpaceChar(ch)) {
spaceCount++;
} else {
otherCount++;
}
}
System.out.println("数字个数:" + digitCount);
System.out.println("字母个数:" + letterCount);
System.out.println("空格个数:" + spaceCount);
System.out.println("其他字符个数:" + otherCount);
}
}
针对从键盘输入两个数,然后计算它们相除后得到的结果并输出的问题,可以参考以下代码。
import java.util.Scanner;
public class Div {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数:");
float a = scanner.nextFloat();
System.out.println("请输入第二个数:");
float b = scanner.nextFloat();
if (b == 0) {
System.out.println("除数不能为0");
return;
}
float result = a / b;
System.out.println(a + " / " + b + " = " + result);
}
}
针对被动引用、类的关系和对象的创建问题以及Java反射机制,建议先学习Java基础语法相关内容,并实践相关题目和案例,逐步深入学习Java高级特性和原理。可参考上述推荐的Java学习教程,进行系统学习和实践。