think in java interview-高级开发人员面试宝典(四)

kali攻防第2章 内网称霸之渗透安卓系统 Kali内网称霸之渗透安卓系统   准备工具   1、准备一部实体android手机 2、使用KALI系统     要用到强大的msf工具(metasplot)   流程步骤 1、启动msf命令是msfconsole 2、在安卓手机上安装一个自己生成的apk木马程序 3、利用msf工具来远程连接Android系统   1)启动msf(注意这里是链接msf就行了不需要进 阅读详情

算出num个数内的质数

质数即大于1的一个自然数,这个数可以被1和自身整除,如算出20之内的质数,它们有2,3,5,7,11,13,17,19这样的数字。这道题也是面试过程中笔试常问的一道题。

这道题的其目的在于:

1. 看笔试者的数学还记不记得

2. 看笔试者平时的算法

因此答题有两种。

第一种,通用做法

  1. public class prime {  
  2. public static boolean isPrime(int num) {  
  3.     for (int i = 2; i <= Math.sqrt(num); i++) {  
  4.         if (num % i == 0) {  
  5.             return false;  
  6.         }  
  7.     }  
  8.         return true;  
  9. }  
  10.   
  11. public static void main(String[] args) {  
  12.     for (int j = 2; j <= 20; j++) {  
  13.         if (isPrime(j)) {  
  14.             System.out.println(j + " is a prime");  
  15.         }  
  16.     }  
  17. }  
  18.   
  19. }  
public class prime {
public static boolean isPrime(int num) {
	for (int i = 2; i <= Math.sqrt(num); i++) {
		if (num % i == 0) {
			return false;
		}
	}
		return true;
}

public static void main(String[] args) {
	for (int j = 2; j <= 20; j++) {
		if (isPrime(j)) {
			System.out.println(j + " is a prime");
		}
	}
}

}





这种做法是对每个2--num个数内的数,进行扫描,需要用到2个循环,其重复度高,效率低下,因此我们还有一种更先进的做法。

“筛选"法

  1. public class Prime2 {  
  2.   
  3.     /** 
  4.      * @param args 
  5.      */  
  6.     public static void main(String[] args) {  
  7.   
  8.         int n = 20;  
  9.   
  10.         int[] array = new int[n];  
  11.   
  12.         for (int i = 2; i < n; i++) {  
  13.   
  14.             array[i] = i;  
  15.   
  16.         }  
  17.   
  18.         for (int i = 2; i < n; i++) {  
  19.             if (array[i] != 0) {  
  20.   
  21.                 int j, temp;  
  22.   
  23.                 temp = array[i];  
  24.   
  25.                 for (j = 2 * temp; j < n; j = j + temp) {  
  26.                     array[j] = 0;  
  27.                 }  
  28.                 System.out.println("\n");  
  29.   
  30.             }  
  31.   
  32.         }  
  33.   
  34.     }  
  35.   
  36. }  
public class Prime2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		int n = 20;

		int[] array = new int[n];

		for (int i = 2; i < n; i++) {

			array[i] = i;

		}

		for (int i = 2; i < n; i++) {
			if (array[i] != 0) {

				int j, temp;

				temp = array[i];

				for (j = 2 * temp; j < n; j = j + temp) {
					array[j] = 0;
				}
				System.out.println("\n");

			}

		}

	}

}


它的原理就是把所有的偶数去掉后即留下质数。


 

约瑟夫环算法

假设有20个人手拉手围成一圈,顺时针开始报号,报到3的人出圈,然后继续往后报,报到3的人出圈,依次把所有报到3的人都踢出圈,最后剩下一人也踢出圈,问先后被踢出圈的那些人原来是圈内的几号?

不难不难,关键记住这个环的算法(有人看到这个”环“字,要笑了,打住,别想歪了,俗人!)

环的算法即闭合算法,永远依次1,2,3,4,5...20...1再2,3,4,5...20这样一直转下去,假设要让20以内的20个数以环型转起来,它的核心算法如下:

  1. int flag=0;       
  2. while(true){  
  3.         flag=(flag+1)%n;   
  4. }  
int flag=0;		
while(true){
		flag=(flag+1)%n; 
}


即”取模运算“,循环继续。


有了核心算法,我们的问题就可以解决了,来:

  1. public class JosephCircle {  
  2.   
  3.     /** 
  4.      * @param args 
  5.      */  
  6.     public void josephCircle(int n,int k){  
  7.         int flag=0;  
  8.         boolean[] kick = new boolean[n];  
  9.         //set kick flag to False;  
  10.         for(int i=0;i<n-1;i++){  
  11.             kick[flag]=false;  
  12.         }  
  13.         int counter=0;  
  14.         int accumulate=0;  
  15.         while(true){  
  16.             if(!kick[flag]){  
  17.                 accumulate++;  
  18.                 if(counter==n-1){  
  19.                     System.out.println("kick last person===="+(flag+1));  
  20.                     break;  
  21.                 }  
  22.                 if(accumulate==k){  
  23.                     kick[flag]=true;  
  24.                     System.out.println("kick person===="+(flag+1));  
  25.                     accumulate=0;  
  26.                     counter++;  
  27.                 }                 
  28.             }  
  29.             flag=(flag+1)%n;  
  30.         }  
  31.           
  32.     }  
  33.     public static void main(String[] args) {  
  34.         JosephCircle jCircle = new JosephCircle();  
  35.         jCircle.josephCircle(20, 3);  
  36.   
  37.     }  
  38.   
  39. }  
public class JosephCircle {

	/**
	 * @param args
	 */
	public void josephCircle(int n,int k){
		int flag=0;
		boolean[] kick = new boolean[n];
		//set kick flag to False;
		for(int i=0;i<n-1;i++){
			kick[flag]=false;
		}
		int counter=0;
		int accumulate=0;
		while(true){
			if(!kick[flag]){
				accumulate++;
				if(counter==n-1){
					System.out.println("kick last person===="+(flag+1));
					break;
				}
				if(accumulate==k){
					kick[flag]=true;
					System.out.println("kick person===="+(flag+1));
					accumulate=0;
					counter++;
				}				
			}
			flag=(flag+1)%n;
		}
		
	}
	public static void main(String[] args) {
		JosephCircle jCircle = new JosephCircle();
		jCircle.josephCircle(20, 3);

	}

}



 

求Missed Number,找丢失的那个数

上次有朋友在美国去yahoo面试,说一道题把它给整了,题目如下:

说有一数组如 int[]{0,1,2} 这样的一个数组,这个数组的第一个必须从0开始,以次+1列出,该数组内最后一个数是这个数组的长度,因此:

int[]{1,2}, missed number为0

int[]{0,1,2}, missed number为3

int[]{0,2}, missed number为1

我朋友和我说这看上去有点像等差数列,我当时就在MSN里和他说:等差数你个头啊!

然后我朋友说,他用了两个循环嵌套也搞不定

我和他说:两个循环你个头啊

他在MSN上又要和我说什么,我还没等他把它打出来直接就是”你个头啊“回过去了。

大家看,这个找missed number是很好玩的一个东西,如果你想着用什么循环,什么算法,什么数据结构,我一律在这边回”你个头啊“,为什么,这么简单的东西,直接套公式啊,唉。。。

  1. public class MissedNumber {  
  2.   
  3.     public int findMissedOne(int[] numArray) {  
  4.         int sum = 0;  
  5.         int idx = -1;  
  6.         for (int i = 0; i < numArray.length; i++) {  
  7.             if (numArray[i] == 0) {  
  8.                 idx = i;  
  9.             } else {  
  10.                 sum += numArray[i];  
  11.             }  
  12.         }  
  13.   
  14.         // the total sum of numbers between 1 and arr.length.  
  15.         int total = (numArray.length + 1) * numArray.length / 2;  
  16.         int missedNumber = total - sum;  
  17.         return missedNumber;  
  18.   
  19.     }  
  20. }  
public class MissedNumber {

	public int findMissedOne(int[] numArray) {
		int sum = 0;
		int idx = -1;
		for (int i = 0; i < numArray.length; i++) {
			if (numArray[i] == 0) {
				idx = i;
			} else {
				sum += numArray[i];
			}
		}

		// the total sum of numbers between 1 and arr.length.
		int total = (numArray.length + 1) * numArray.length / 2;
		int missedNumber = total - sum;
		return missedNumber;

	}
}



来个测试类

  1. public class TestMissedNumber {  
  2.   
  3.     protected MissedNumber mNum = new MissedNumber();  
  4.   
  5.     @Test  
  6.     public void testFindMissedOne() {  
  7.         int[] testArray = new int[] {0,2};  
  8.         int missedNumber = mNum.findMissedOne(testArray);  
  9.         System.out.println(missedNumber);  
  10.     }  
  11.   
  12. }  
public class TestMissedNumber {

	protected MissedNumber mNum = new MissedNumber();

	@Test
	public void testFindMissedOne() {
		int[] testArray = new int[] {0,2};
		int missedNumber = mNum.findMissedOne(testArray);
		System.out.println(missedNumber);
	}

}



简单吧,数组内的数的总和减去((数组长度+1)*数组长度/2),即为missed number

所以你就循环求一个数组内各数的和即可鸟。


 

硬币组合问题

这道题老套了,即2角,5角,1角硬币,问有多少种组合可得到1块钱(一块钱?一块钱以前能够买奶油雪糕,一块钱以前可以买一个铅笔盒,一块钱以前可以吃到大排面,现在能干吗?)

  1. public class CentsCombinations {  
  2.     public static void main(String[] args) {  
  3.         int i, j, k, total;  
  4.         System.out.println("1 cent"+"  2 cents"+"  5 cents");  
  5.         for (i = 0; i <= 10; i++)  
  6.             for (j = 0; j <= 5; j++)  
  7.                 for (k = 0; k <= 2; k++) {  
  8.                     total = i * 1 + j * 2 + k * 5;  
  9.                     if (total > 10)  
  10.                         break;  
  11.                     if (10 == total)  
  12.                         System.out.println("    " + i + ",    " + j + ",    " + k);  
  13.                 }  
  14.   
  15.     }  
  16. }  
public class CentsCombinations {
	public static void main(String[] args) {
		int i, j, k, total;
		System.out.println("1 cent"+"  2 cents"+"  5 cents");
		for (i = 0; i <= 10; i++)
			for (j = 0; j <= 5; j++)
				for (k = 0; k <= 2; k++) {
					total = i * 1 + j * 2 + k * 5;
					if (total > 10)
						break;
					if (10 == total)
						System.out.println("    " + i + ",    " + j + ",    " + k);
				}

	}
}



 

在List内去除重复值的问题

说有一个ArrayList{1,2,3,5,1,2,7,5,3,3,4,5,6,9,11,11},它里面有许多重复数,我要求去除所有的重复数据,得到一个不重复的List。

有的人碰到这个问题,循环2个,嵌套,还有用二分算法的(这种人已经算好的了)。

要什么循环啊?

这道题考的是你对JDK的API是否熟悉,来看下面答案,如果以前没碰到过这个问题的人看完下面的答案后直接就吐血了

  1. public class DuplicateValue {  
  2.   
  3.     public void removeDuplicateValue() {  
  4.         List myList = new ArrayList();  
  5.         myList.add(1);  
  6.         myList.add(2);  
  7.         myList.add(1);  
  8.         myList.add(3);  
  9.         myList.add(4);  
  10.         myList.add(5);  
  11.         myList.add(6);  
  12.         myList.add(5);  
  13.   
  14.         Set myset = new HashSet(myList);  
  15.         myList = new ArrayList(myset);  
  16.         Iterator it = myList.iterator();  
  17.         while (it.hasNext()) {  
  18.             System.out.println(""+it.next());  
  19.         }  
  20.     }  
  21.   
  22.     public static void main(String[] args) {  
  23.         DuplicateValue dv = new DuplicateValue();  
  24.         dv.removeDuplicateValue();  
  25.   
  26.     }  
  27.   
  28. }  
public class DuplicateValue {

	public void removeDuplicateValue() {
		List myList = new ArrayList();
		myList.add(1);
		myList.add(2);
		myList.add(1);
		myList.add(3);
		myList.add(4);
		myList.add(5);
		myList.add(6);
		myList.add(5);

		Set myset = new HashSet(myList);
		myList = new ArrayList(myset);
		Iterator it = myList.iterator();
		while (it.hasNext()) {
			System.out.println(""+it.next());
		}
	}

	public static void main(String[] args) {
		DuplicateValue dv = new DuplicateValue();
		dv.removeDuplicateValue();

	}

}




 

一道题即考了冒泡又考了二分

说有一数组int[]{1,2,2,4,6,8,9,5,3,7,5},里面可能还有很多,想要知道”两两相加等于10“的这样的数有几对,可以重复如:2+6,6+2

上手就是冒泡

  1. public Vector<SumPossibleBean> checkSumPossible(ArrayList<Integer> intList,  
  2.             int sumResult) {  
  3.         Vector<SumPossibleBean> possibleList = new Vector<SumPossibleBean>();  
  4.         int size = intList.size();  
  5.         for (int i = 0; i < size; i++) {  
  6.             for (int j = i + 1; j < size; j++) {  
  7.                 if ((intList.get(i).intValue() + intList.get(j).intValue()) == sumResult) {  
  8.   
  9.                     SumPossibleBean spBean = new SumPossibleBean();  
  10.                     spBean.setFirst(intList.get(i).intValue());  
  11.                     spBean.setSecond(intList.get(j).intValue());  
  12.                     possibleList.addElement(spBean);  
  13.                 }  
  14.             }  
  15.         }  
  16.         return possibleList;  
  17. }  
public Vector<SumPossibleBean> checkSumPossible(ArrayList<Integer> intList,
			int sumResult) {
		Vector<SumPossibleBean> possibleList = new Vector<SumPossibleBean>();
		int size = intList.size();
		for (int i = 0; i < size; i++) {
			for (int j = i + 1; j < size; j++) {
				if ((intList.get(i).intValue() + intList.get(j).intValue()) == sumResult) {

					SumPossibleBean spBean = new SumPossibleBean();
					spBean.setFirst(intList.get(i).intValue());
					spBean.setSecond(intList.get(j).intValue());
					possibleList.addElement(spBean);
				}
			}
		}
		return possibleList;
}


不错,两个循环嵌套,当考官问你,有没有更好的算法时,70%以上的人基本歇菜!!!

唉哎。。。二分来一个吗,以前在学校怎么学的?

  1. public Vector<SumPossibleBean> checkSumPossibleBinSearch(  
  2.             ArrayList<Integer> intList, int sumResult) {  
  3.         Vector<SumPossibleBean> possibleList = new Vector<SumPossibleBean>();  
  4.         int size = intList.size();  
  5.         Collections.sort(intList);  
  6.         for (int i = 0, j = (intList.size() - 1); i < j;) {  
  7.             Integer s = intList.get(i);  
  8.             Integer e = intList.get(j);  
  9.             if ((s + e) == sumResult) {  
  10.                 SumPossibleBean spBean = new SumPossibleBean();  
  11.                 spBean.setFirst(intList.get(i).intValue());  
  12.                 spBean.setSecond(intList.get(j).intValue());  
  13.                 possibleList.addElement(spBean);  
  14.                 i++;  
  15.                 j--;  
  16.             } else if ((s + e) > sumResult) {  
  17.                 j--;  
  18.             } else if ((s + e) < sumResult) {  
  19.                 i++;  
  20.             }  
  21.         }  
  22.         return possibleList;  
  23. }  
public Vector<SumPossibleBean> checkSumPossibleBinSearch(
			ArrayList<Integer> intList, int sumResult) {
		Vector<SumPossibleBean> possibleList = new Vector<SumPossibleBean>();
		int size = intList.size();
		Collections.sort(intList);
		for (int i = 0, j = (intList.size() - 1); i < j;) {
			Integer s = intList.get(i);
			Integer e = intList.get(j);
			if ((s + e) == sumResult) {
				SumPossibleBean spBean = new SumPossibleBean();
				spBean.setFirst(intList.get(i).intValue());
				spBean.setSecond(intList.get(j).intValue());
				possibleList.addElement(spBean);
				i++;
				j--;
			} else if ((s + e) > sumResult) {
				j--;
			} else if ((s + e) < sumResult) {
				i++;
			}
		}
		return possibleList;
}




算法讲一些,讲多了枯燥,来几道问答题,如果你没准备过的话也一样可以让你爽到吐血。


 

Collection 和 Collections的区别 


Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。 
Collection是个java.util下的接口,它是各种集合结构的父接口。

吐血了吗?没吐,OK,下面这道如果在面试时问到一定让你吐,面架构师的人50%以上被问到过这道题


 

什么时候用assert

断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true。如果表达式计算为 false,那么系统会报告一个 AssertionError。它用于调试目的:  

assert(a > 0); // throws an AssertionError if a <= 0  


断言可以有两种形式:  


assert Expression1 ;  
assert Expression1 : Expression2 ;  

Expression1 应该总是产生一个布尔值。  
Expression2 可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的 String 消息。  

断言在默认情况下是禁用的。要在编译时启用断言,需要使用 source 1.4 标记:  

javac -source 1.4 Test.java  

要在运行时启用断言,可使用 -enableassertions 或者 -ea 标记。  

要在运行时选择禁用断言,可使用 -da 或者 -disableassertions 标记。

要系统类中启用断言,可使用 -esa 或者 -dsa 标记。还可以在包的基础上启用或者禁用断言。  


可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。另外,断言不应该以任何方式改变程序的状态。


 

企业级开发写多了,忘了JAVA是一门计算机语言,计算机语言最早是用来做运算的

来一道

问:Math.round(11.5)等於多少? Math.round(-11.5)等於多少

Math.round(11.5)返回(long)12

Math.round(-11.5)返回(long)-11;

再来一道

问:short s1 = 1; s1 = s1+ 1;有什么错? short s1 = 1; s1 += 1;有什么错

short s1 = 1; s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。


 

数组有没有length()这个方法? String有没有length()这个方法

数组没有length()这个方法,有length的属性。

 

String有有length()这个方法。


 

error和exception有什么区别?

error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

 

exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。


 

abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

 

都不能 



 

可变类与不可变类的区别

所谓不可变类:

是指当创建了这个类的实例后,就不允许修改它的属性值。在JDK的基本类库中,所有基本类型的包装类,如Integer和Long类,都是不可变类,java.lang.String也是不可变类。

不可变类:

当你获得这个类的一个实例引用时,你不可以改变这个实例的内容。不可变类的实例一但创建,其内在成员变量的值就不能被修改。

如何创建一个不可变类?

这道题90%以上的人都会被挂或者只回答一半对,来看:

1. 所有成员都是private
2. 不提供对成员的改变方法,例如:setXXXX
3. 确保所有的方法不会被重载。手段有两种:使用final Class(强不可变类),或者将所有类方法加上final(弱不可变类)。
4. 如果某一个类成员不是原始变量(primitive)或者不可变类,必须通过在成员初始化(in)或者get方法(out)时通过深度clone方法,来确保类的不可变。

四点中少一点,回答失败,来看一个例子:

  1. public final class MyImmutableWrong {  
  2.     private final int[] myArray;  
  3.   
  4.   
  5.     public MyImmutableWrong(int[] anArray) {  
  6.         this.myArray = anArray; // wrong  
  7.     }  
  8.   
  9.   
  10.     public String toString() {  
  11.         StringBuffer sb = new StringBuffer("Numbers are: ");  
  12.         for (int i = 0; i < myArray.length; i++) {  
  13.             sb.append(myArray[i] + " ");  
  14.         }  
  15.         return sb.toString();  
  16.     }  
  17. }  
public final class MyImmutableWrong {
	private final int[] myArray;


	public MyImmutableWrong(int[] anArray) {
		this.myArray = anArray; // wrong
	}


	public String toString() {
		StringBuffer sb = new StringBuffer("Numbers are: ");
		for (int i = 0; i < myArray.length; i++) {
			sb.append(myArray[i] + " ");
		}
		return sb.toString();
	}
}


以上不可变类书写错误,为什么?违犯了第四点

正确的写法:

  1. public final class MyImmutableCorrect {  
  2.     private final int[] myArray;  
  3.   
  4.     public MyImmutableCorrect(int[] anArray) {  
  5.         this.myArray = anArray.clone();   
  6.     }  
  7.   
  8.     public String toString() {  
  9.         StringBuffer sb = new StringBuffer("Numbers are: ");  
  10.         for (int i = 0; i < myArray.length; i++) {  
  11.             sb.append(myArray[i] + " ");  
  12.         }  
  13.         return sb.toString();  
  14.     }  
  15. }  
public final class MyImmutableCorrect {
	private final int[] myArray;

	public MyImmutableCorrect(int[] anArray) {
		this.myArray = anArray.clone(); 
	}

	public String toString() {
		StringBuffer sb = new StringBuffer("Numbers are: ");
		for (int i = 0; i < myArray.length; i++) {
			sb.append(myArray[i] + " ");
		}
		return sb.toString();
	}
}



记住,不可变类的写法,我说过90%的人碰到这个问题会挂,另10%回答出。

但 是这10%里90%的人只回答出第1点,第2点和第3点,对于第四点即:

如果某一个类成员不是原始变量(primitive)或者不可变类,必须通过在成员初始化(in)或者get方法(out)时通过深度clone方法,来确保类的不可变。

则都没回答上来。

由此可判断这个面试者是真正写过还是只是为了应付面试而背原理。

所以,不要把面试当儿戏,每一次面试可能就是对自己这段时间的一个检查,看看自己平时缺了什么,JAVA是一门体系化的语言,要想面试的好,不只是死记硬背,是真的平时要化时间自己去补一些基础的。

上手就学SSH,JSP能连个数据库满天飞,这就是JAVA了?这就是中国IT了。。。这是错误的。

今天暂写这么多,下次继续。

 

 

转载地址:http://blog.youkuaiyun.com/lifetragedy/article/details/9812419

高速电路设计必看:同步开关噪声问题解析 数字电路中的同步开关噪声(SSN)问题日益突出,尤其是随着高速器件应用增多。本文分析了地弹和电压弹的产生机理,指出其与电源网络电感、输出驱动电流变化率密切相关。文章详细阐述了地弹参数特征,包括峰值电压、脉冲宽度等关键指标,并探讨了负载电容、信号压摆率等因素对地弹的影响。最后提出系统化的解决方案,涵盖芯片选型、电路设计、PCB布局和后期调试等多个环节,强调通过降低回路电感和控制电流变化率来有效抑制SSN。这些措施需要在性能、成本和复杂度之间取得平衡,为高速数字电路设计提供了重要参考。 阅读详情

相关推荐

【白话系列】倍增算法

【序言】         我认为吧,所有能够优化复杂度的算法都是神奇的,所有能够化繁琐为形象的文字都是伟大的。一直觉得倍增算法是个很神奇的东西,所以决定写点东西纪念一下它。但是作为一个非常不称职的OIER,我非常讨厌在看别人的算法解析时整版的i,j,k等我看到鼠标就惯性移到右上角的符号语言,所以我想用最形象的方式来纪念它。 【一】         从前,有一只可爱得不得了的小白兔,它想从

JarjingX 3万+

List之LinkedList(假设20个人围成一个圈,从第一个人开始报数,每遇到3....)

对于LinkedList也实现了List接口,所以使用方法和ArrayList一模一样,底层实现是链表,链表分为双向和单向。 单向链表不在阐述下面给大家一个双向链表的草图: 如果你连链表是什么都不知道,那说明你要去补补数据结构了,本科生本专业来说一般都会学的,本人数据结构学的不好,所以后面可能也会更新一些关于这些的博客。但是最起码近几个月不会有这些内容,有需求的朋友建议自行搜集资料学习。 下面直...

cdut2016的博客 826

从零搭建高通8255车载开发环境:QNX SDP、SDK配置与镜像编译全流程

本文详细介绍了如何从零搭建高通SA8255P车载开发环境,涵盖QNX SDP部署、SDK工具链配置到多系统镜像编译的全流程。特别针对SAIL安全岛镜像构建、QNX系统优化及Android系统资源分配等关键技术点提供实战指导,帮助开发团队高效完成车载系统开发与调试。

weixin_33582311的博客 364

java基础(n个人围成一圈)

Java 写有n个人围成一圈,顺序排号,从第一个人开始报数(从1~3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号。 import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.print("请输入排成一圈的人数:"); int

ToString的博客 4224

手把手教你用STM32的ADC读取PT100模块,实现高精度温度采集(附完整代码)

本文详细介绍了如何利用STM32的ADC模块读取PT100温度传感器信号,实现高精度温度采集系统。从硬件选型、ADC配置校准到温度计算算法和软件滤波技术,提供完整的实现方案和优化技巧,帮助工程师快速构建稳定可靠的温度监测系统。

weixin_29185199的博客 343

PyTorch实战:手把手教你用QAT量化感知训练拯救模型精度(附避坑指南)

本文详细介绍了如何使用PyTorch进行QAT量化感知训练,以提升模型在边缘设备上的推理精度。通过核心原理讲解、实战代码示例和避坑指南,帮助开发者掌握从环境配置、模型训练到边缘部署的全流程,有效解决传统量化方法导致的精度损失问题。

c7d8e的博客 325

围成一圈java_几个人围成一圈的问题

2014-04-09 06:30:02阅读( 68 )编程题:设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺序;要求用java 实现。【中等难度】答:代码如下:package test;public class CountGame {private ...

weixin_39616961的博客 451

【第六届起重机创意大赛国一作品——资料分享】

文章目录前言一、比赛内容分析二、确定方案与作品模型1.方案简图2.作品模型三、电控部分控制思路单片机选择与资源分配拓展板的设计接线与走线代码分享总结

qq_19308801的博客 7781

有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位...

/* 题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 */ /*复制的代码*/ import java.util.Scanner; public class Test37{ public static void main(String[] args) { Scanner s = new Scanner...

yml957803796_1的专栏 227

【毕业设计】基于雷达与深度学习的摔倒检测——雷达数据集的建立

运动物体的微多普勒效应为人体动作识别提供了可能,基于雷达的居家检测具有良好的隐私保护性,且不易受环境因素影响(如光照、温度等),近年来已受到国内外学者的广泛关注。基于雷达与深度学习的摔倒检测使用自建的雷达数据集进行人体摔倒检测的研究。雷达数据集的建立分为雷达数据采集和雷达数据处理两部分工作。

洋洋Young的博客 3403

【软考高级架构】案例题考前突击6——大数据架构

前一类的数据主要由流量方以接口的方式提供(比如对接的腾讯广点通平台),后一类则是某网特有的数据,通过买家的浏览、下单、付款日志算出来。1. 在数据层面只维护一张包含所有指标的MySQL表,表中的stday字段作为索引,stday=当天的保存实时数据,stday<当天的保存离线数据。典型的大数据架构,除了Lambda架构之外,还有kappa架构,这两个架构的区别如下标所示,请补充表中空(1)-(4)第二,实时数据只对接了内部的kafka消息,没有实时的获取第三方的曝光、点击、浏览数据。

qq837993702的博客 66

think in java interview-高级开发人员面试宝典(一)

无论你是在职,非在职,高级工程师,工程师,架构师,如果你正在面试阶段,请看完此文,相信这篇文章对你的职业生涯和阶值观会发生重大的改变。如果你是一名PM或者是管理者正在物色合适的开发人选,那么我相信这篇文章会在在如何挑选技术型人材上给你带来重大的帮助。作为一名技术型人材由期是程序员,用什么可以恒量自己是否合格或者我们怎么去恒量一个程序员是否质深,比如说:他可以适合一般的软件工程师岗位,还是适合高级工

打造全国最全的AI Agent开发知识领域的博客 2万+

42、多媒体与虚拟现实在艺术和影视领域的创新应用

本文探讨了多媒体与虚拟现实在艺术和影视领域的创新应用,涵盖三个典型案例:影视与人类学融合项目通过协作模式模糊作者与观众界限,推动文化文献的发展;交互式数字短片《分手》利用基于对象的广播技术探索个性化影视体验;威尼斯双年展瑞士馆4D项目则通过虚拟现实技术实现文化遗产的数字化展示。这些案例展示了技术在叙事、用户体验及文化保护中的深度应用,并展望了未来技术融合、个性化深化与文化遗产传承的发展趋势。

kappa的博客 114

think in java interview-高级开发人员面试宝典(九)

模拟面试今天来谈一下面试时的综合能力。下面先来看一份简历的摘要。熟练掌握SPRING, STRUTS1, 2, HIBERNATE;J2EE方面5年工作经验;ORACLE使用经验48个月;熟练掌握JAVA缓存机制;了解工作流、ERP、EAI工作机制并有实际项目经验;老实说,一般面试官看到上面的简历就会想让这个人来面试了,因为真的你SSH,ORACLE,ERP或者是EAI等工作过5年很利害了已经,于

打造全国最全的AI Agent开发知识领域的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

think in java interview-高级开发人员面试宝典(二)

从现在开始,以样题的方式一一例出各种面试题以及点评,考虑到我在前文中说的,对于一些大型的外资型公司,你将会面临全程英语面试,因此我在文章中也会出现许多全英语样题。这些题目来自于各个真实的公司,公司名我就不一一例举了,是本人一直以为苦心收藏的。一个JAVA 的MAIN方法引发的一场血案Q:    What if the main method is declared as private?A:

打造全国最全的AI Agent开发知识领域的博客 4万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

think in java interview-高级开发人员面试宝典(八)

Java IO流的复习。大家平时J2EE写多了,JAVA的IO操作可能都已经生疏了,面试时如果来上这么几道,是不是有点”其实这个问题很简单,可是我就是想不起来“的感觉啊?呵呵!JAVA的IO操作太多,我这边挑腾迅,盛大和百度的几道面试题,并整理出答案来供大家参考。InputFromConsole这个最简单不过了,如果你不复习的话,嘿嘿,还真答不出,来看:package org.sky.io; p

打造全国最全的AI Agent开发知识领域的博客 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: think in java interview-高级开发人员面试宝典(三)
下一篇: think in java interview-高级开发人员面试宝典(五)
7star_java
博客等级 码龄15年 80粉丝 127原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值