1、byte、short、char类型的任意两个数据想要进行运算操作,都会先转换成int类型,再进行运算操作。final修饰的变量例外。
2、从Java 8开始,接口当中允许定义静态方法。 在抽象类中可以有构造方法,只是不能直接创建抽象类的实例对象,但实例化子类的时候,就会初始化父类,不管父类是不是抽象类都会调用父类的构造方法,初始化一个类,先初始化父类。 全局成员变量可以直接被static、final同时修饰。
3、java的四个访问修饰符:
访问权限 类 包 子类 其他包
public ∨ ∨ ∨ ∨
protect ∨ ∨ ∨ ×
default ∨ ∨ × ×
private ∨ × × ×
4、java成员变量与局部变量的区别
(1)从语法形式上看,成员变量是属于类的而局部变量是在方法中定义的变量或是方法的参数;成员变量可以被public、private,static等修饰符所修饰,而局部变量则不能被访
问控制修饰符及static所修饰;成员变量和局部变量都可以被final所修饰。
(2)从变量在内存中的存储方式上看,成员变量是对象的一部分,而对象是存在于堆内存的,而局部变量是存在于栈内存的。
(3)从变量在内存中的生存时间上看,成员变量是对象的一部分,它随着对象的创建而存在,而局部变量随着方法的调用而产生,随着方法调用的结束而自动消失。
(4)成员变量如果没有被赋初值,则会自动以类型的默认值赋值(有一种情况例外,被final修饰但没有被static修饰的成员变量必须显式地赋值);而局部变量则不会自动赋值,必须显式地赋值后才能使用。
5、Java普通类和抽象类有哪些区别
普通类不能包含抽象方法,抽象类可以包含抽象方法。
抽象类不能直接实例化,普通类可以直接实例化。
1.字符统计(输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数)
import java.util.Scanner;
public class 操作题1 {
public static void main(String[] args) {
int abcCount = 0;
int spaceCount = 0;
int numCount = 0;
int otherCount = 0;
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串~~");
String str = sc.nextLine();
System.out.println(str);
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= 'a' && c <= 'z') {
abcCount++;
} else if (c ==' ') {
spaceCount++;
} else if (c >= '0' && c <= '9') {
numCount++;
} else {
otherCount++;
}
}
System.out.println(abcCount);
System.out.println(spaceCount);
System.out.println(numCount);
System.out.println(otherCount);
}
}
next与nextLine的区别
next()和nextLine()是Java中Scanner类中的两个方法,它们的区别在于读取输入的方式不同。next()方法读取输入中的下一个单词,而nextLine()方法读取输入中的下一行。具体来说,next()方法读取输入中的下一个单词,即以空格分隔的字符串,而nextLine()方法读取输入中的下一行,即以换行符为分隔符的字符串。此外,hasNext()和hasNextLine()方法与next()和nextLine()的关系类似,但它们不用于读取数据,而是用于检查输入中是否还有更多的数据可以读取。它们都不会消耗或移动输入流的位置。hasNext()方法会检查输入中是否还有下一个单词,即是否存在非空白字符。这意味着,只要输入中还有非空白字符,无论是在当前行还是在下一行,hasNext()都会返回true。hasNextLine()方法则会检查输入中是否还有下一行。如果输入中存在换行符,或者如果输入中至少还有一个字符(即使这个字符是空白字符),hasNextLine()都会返回true。但是如果输入已经到达结尾,或者输入中的下一个字符是输入流的结尾,hasNextLine()就会返回false。
2.质数判断(输入一个数n,2<=n<=2147483647,请判断这个数是不是质数,如果是质数则输出Yes,否则输出No)
import java.util.Scanner;
public class 操作题2again {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
if (a == 2) {
System.out.println(true);
} else {
boolean zxc=zxc(a) ;
if(zxc){
System.out.println("Yes");
}else {
System.out.println("No");
}
}
}
public static boolean zxc(int b){
for (int i = 2; i < b; i++) {
if (b % i == 0) {
return false;
}
}
return true;
}
}
3.根据输入值输出对应行数的杨辉三角
import java.util.Scanner;
public class 操作题3 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
//输入数字控制杨辉三角的层数
int a=sc.nextInt();
int[][] tandang=new int[a][a];
for (int i = 0; i <tandang.length ; i++) {
for (int j = 0; j <=i ; j++) {
if (j==0||i==j){
tandang[i][j]=1;
}else {
tandang[i][j]=tandang[i-1][j-1]+tandang[i-1][j];
}
System.out.print(tandang[i][j]+" ");
}
System.out.println();
}
}
}