最后
Java架构进阶面试及知识点文档笔记
这份文档共498页,其中包括Java集合,并发编程,JVM,Dubbo,Redis,Spring全家桶,MySQL,Kafka等面试解析及知识点整理
Java分布式高级面试问题解析文档
其中都是包括分布式的面试问题解析,内容有分布式消息队列,Redis缓存,分库分表,微服务架构,分布式高可用,读写分离等等!
互联网Java程序员面试必备问题解析及文档学习笔记
Java架构进阶视频解析合集
public class TestDemo {
public static void main(String[] args) {
//求0-100中9出现的次数
int i=0;
int count=0; //利用count进行计数
for(i=0;i<=100;i++){
if(i%10==9){
count++;
}
if(i/10==9){//此处不能用else if(因为99有两个9需要被计算两次)
count++;
}
}
System.out.println("0-100中9出现的次数为:"+count);
}
}
2.输出1000-2000里的全部闰年
public class TestDemo {
public static void main(String[] args) {
System.out.println("1000-2000中闰年如下:");
int i = 1000;
for (i = 1000; i <= 2000; i++) {
//加括号更好理解;前者为公历闰年;后者为世纪闰年
if (((i % 4 == 0) && (i % 100) != 0) || (i % 400 == 0)) {
System.out.println(i);
}
}
}
}
3.打印素数(0-100内的所有素数)
public class TestDemo {
public static void main(String[] args) {
System.out.println("素数如下:");
int i=1;
int j=1;
for(i=1;i<=100;i++){
int count=0;
for(j=1;j<=i;j++){
if(i%j==0){
count++;
}
}
if(count==2){
//一个素数只有1和它本身两个因数;
//上面的循环也是从1开始到其本身结束,与此处形成对应
System.out.println(i);
}
}
}
}
4.输入一个数,判断其是否为素数
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
System.out.println("请输入一个数并判断其是否为素数:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
suShu(n);
}
public static void suShu(int x) {
int i = 2;
for (i = 2; i < x; i++) {
if (x % i == 0)
System.out.println(x+"不是素数");
}
System.out.println(x + "是素数");
}
}
5.打印X型
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
System.out.println("打印X型:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
daYin(n);
}
public static void daYin(int x) {
int i = 0;
int j = 0;
for (i = 0; i < x; i++) {
for (j = 0; j < x; j++) {
if (i == j) {
System.out.println("*");
} else if (i + j
== x - 1) {
System.out.println("*");
}else
System.out.println(" ");
}
}
System.out.println();}
}
6.计算分数
public class TestDemo {
public static void main(String[] args) {
System.out.println("请计算1-1/2+1/3-1/4+1/5+...+...1/99-1/100的结果");
int i=1;
double sum=0.0;
int flg=1;
for(i=1;i<=100;i++){
sum=sum+1.0/i*flg;//先思考连加的形式,再在加的基础上更改成为减
flg=-flg;
}
System.out.println(sum);
}
}
7.水仙花(输入一个整数,使它满足水仙花的规律;例如:153=13+53+3^3)
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
System.out.println("请输入一个数,求得0-这个数所有满足水仙花的数如下:");
//求是几位数,利用count进行计数
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
findNum(n);
}
public static void findNum(int n) {
for (int i = 0; i <= n; i++) {
//count从1开始是因为数至少都是一位数
int count = 1;
int tmp = i;
while (tmp / 10 != 0) {
count++;
tmp /= 10;
}//用临时变量tmp是为了确保i值的不变性,为后续i继续计算做铺垫
tmp =i;
int sum = 0;
while (tmp != 0) {
//Math.pow(底数, 指数);
//Math.pow(a, 3);等价于 a*a*a;
sum += Math.pow(tmp % 10, count);
tmp /= 10;
}
if (sum == i ){
System.out.println(i);
}
}
}
}
8.最大公约数(方法:利用辗转相除法)
辗转相除法:即较大数除以较小数,将除数作为被除数,余数作为除数,再次除,直到余数
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
System.out.println("请输入两个数,并求出两个数里的最大公约数:");
Scanner sc=new Scanner(System.in);
int n1=sc.nextInt();
int n2=sc.nextInt();
int tmp=0;
while(n1%n2!=0){
tmp=n1%n2;
n1=n2;
n2=tmp;
}
System.out.println(n2);
}
}
为零时求得的除数即最大公约数
9.二进制中1的个数
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
System.out.println("请输入一个数,并求出它的二进制中1的个数");
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
System.out.println(geShu(n));
}
public static int geShu(int x){
int count=0;
while((x&1)!=0){
count++;
x=x>>>1;//>>>相比于>>的好处在于无符号的限制,就可以计算类似于-1的位数
}
return count;
}
}
原理如下
10.模拟登陆(可登录三次密码,输入成功就进入,三次输入失败就宣布结束)
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
System.out.println("请输入你的密码");
login();
}
public static void login() {
Scanner sc = new Scanner(System.in);
int count = 3;
while (count != 0) {
String str = sc.nextLine();//每次输入的需要,确保密码错误的时候可以再输入的保证
if (str.equals("123456")) {
//比较两个字符串是否相等,不能直接用=进行连接。
//要调用equals函数进行调用
System.out.println("密码正确!");
break;
} else {
count--;
System.out.println("密码错误,你还有" + count + "次机会");
}
感受:
其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。
特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。
也祝愿各位同学,都能找到自己心动的offer。
分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档
感受:
其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。
特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。
也祝愿各位同学,都能找到自己心动的offer。
分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档
[外链图片转存中…(img-S4oXgLKG-1715566515401)]