1.將按位運算操作,尤其是左移和右移(有無符號)整理到自己的博客中。
重點說明清晰負數的運算過程。
答:
/**
* 運算符演示
*/
class CalcDemo{
//入口點
public static void main(String[] args){
//定義整型變量
int a = 6 ;
int b = 8 ;
//+-符號
System.out.println("****** 正負號 *********");
System.out.println("+a = " + (+a)) ;
System.out.println("-a = " + (-a)) ;
//算術運算符 + - * / %
System.out.println("****** 算術運算符 *********");
System.out.println("a + b = " + (a + b));//
System.out.println("a - b = " + (a - b));//
System.out.println("a * b = " + (a * b));//
System.out.println("a / b = " + (a / b));
System.out.println("a % b = " + (a % b));
//賦值運算符 a += b ==> a = a + b
System.out.println("****** 賦值運算符 *********");
System.out.println("a += b = " + (a += b));//
System.out.println("a -= b = " + (a -= b));//
System.out.println("a *= b = " + (a *= b));//
System.out.println("a /= b = " + (a /= b));//
System.out.println("a %= b = " + (a %= b));//
//比較運算符
System.out.println("****** 比較運算符 *********");
System.out.println("a == b = " + (a = b));//
System.out.println("a != b = " + (a != b));//
System.out.println("a > b = " + (a > b));//
System.out.println("a >= b = " + (a >= b));//
System.out.println("a < b = " + (a < b));//
System.out.println("a <= b = " + (a <= b));//
//邏輯運算符
boolean b1 = false ;
boolean b2= true ;
System.out.println("****** 邏輯運算符 *********");
System.out.println("b1 | b2 = " + (b1 | b2));//true
System.out.println("b1 & b2 = " + (b1 & b2));//false
System.out.println("b1 ^ b2 = " + (b1 ^ b2));//true
System.out.println("!b1 = " + !b1);//true
System.out.println("b1 || b2 = " + (b1 || b2));//true
System.out.println("b1 && b2 = " + (b1 && b2));//false
//位運算符
System.out.println("****** 邏輯運算符 *********");
a = -7 ; b = 3 ;//1111 1111 - 1111 1111
System.out.println("a << 2 = " + (a << 2));//12
System.out.println("a >> 2 = " + (a >> 2));//0
System.out.println("a >>> 2 = " + (a >>> 2));//0
System.out.println("a | b = " + (a | b));//7
System.out.println("a & b = " + (a & b));//1
System.out.println("a ^ b = " + (a ^ b));//6
System.out.println("~a = " + (~a));//-4
//
}
}
2.byte數到十六進制字符串表現形式程序設計原理和實現方式整理到博客中。
答:
/**
* 將字節類型數組轉換成十六進制的字符串表現形式
*/
class Byte2Hex {
public static void main(String[] args) {
byte b = 108;
System.out.println(convert(b));
}
// 轉換函數
public static String convert(byte b) {
// 1.取出字節b的低四位的數值
int low = b & 0x0F; // 低四位0-15
// 2.取出高四位的值,先將b向右移動4位
int high = (b >> 4) & 0x0F; // 高四位0-15
// 定義字符數組
char[] arr = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',
'B', 'C', 'D', 'E', 'F' };
// 拼接串
return "" + arr[high] + arr[low];
}
}
3.定義函數,計算一位整型數組所有元素的和。
答:
/**
* 計算所有元素的總和
*/
class SumDemo{
public static void main(String[] args){
//int result = sum(new int[]{1,2,4,5,6});
System.out.println(multi(4));
}
//計算數組的總和
public static int sum(int[] arr){
int sum = 0 ;
//循環數組
for(int i = 0 ; i < arr.length ; i ++){
//開始累加
sum = sum + arr[i] ;
}
return sum;
}
//計算數的階乘
public static int multi(int n){
int result = 1 ;
for(int i = 1 ; i <= n ; i ++){
result = result * i ;
}
return result ;
}
}
4.數組的拷貝。
答:
class ArrayCopyDemo {
/**
* @param args
*/
public static void main(String[] args) {
int[] arr1 = {2, 3, 4, 5};
int[] arr2 = new int[arr1.length];
copy(arr1, arr2);
out(arr2);
}
private static void copy(int[] arr1, int[] arr2) {
for (int i = 0; i < arr1.length; i++) {
arr2[i] = arr1[i];
}
}
private static void out(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
5.堆內存默認是1/4,
----------------------------------------
java -Xmx//設置堆內存最大值
-Xms//設置堆內存初始值
className//類名
答:堆內存的默認最大空間是物理內存的1/4,在運行java程序時,可以通過 -Xms初始堆內存的大小,-Xmx設置最大堆內存的大小;