java数据类型:

byte  : 一个字节,-128 ~127

short : 两个字节,-32768 ~ 32767

int      :  四个字节。

long   : 八个字节。

float   : 4字节

double:8个字节

boolean:1个字节

char    :2 个字节

/**
*基本类型演示
*/
class BaseType{
	public static void main (String [] agrs){
		//字节型变量
		byte b = 127;
		System.out.println("字节型变量b =" + b);
		//long
		long l = 12L;
		System.out.println("长整型变量l =" + l);
		//float
		float f = 3.14F;
		System.out.println(f);
		//double
		double d = 3.14;
		System.out.println(d);
	}
}

 运算符号:

算数:(+号)(-号) + - * / %  a++   ++a   b--  --b

赋值:=  +=  -=  *=  /=  %=

布尔表达式的逻辑运算符

------------------------

1.| : 单或,没有短路情况。

2.& : 单与,同上。

3.^ : 异或,a == b->false a !=b -> true

4.! : 取反

5.&& : a && b ,a == false ,b 不运算,短路了。

6.|| : a || b ,a == true , b 不运算,短路了。 

/**
*运算符演练
*/
class TypeDemo{
	//入口
	public static void main(String [] args){
	//定义变量
	int  a = 3 ;
	int  b = 5 ;
	//符号
	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));
	}
}

java中数字的表现形式

------------------------

1.十进制  int x = 100 ;

2.八进制  int y = 077 ;

3.十六进制int z = 0xef;

将一个byte数变换成00-FF之间的一个字符串

----------------------------------------

思路:将b和十六进制数0x0F做&运算取得低四位的值。

     再将b右移4位,再次和0x0F做&运算取得高四位的值。

 构造字符数组,按下标取得对应的字符即可。

/**
*将字节类型数组转换成十六进制的字符串的表现形式
*/
class ByteHex{
	public static void main (String [] args){
		byte b = 108;
		System.out.println(convert(b));
	}
	//转换函数
	public static String convert (byte b){
		//取出字节b的低四位的数值
		int low =  b & 0x0F;        //低四位0-15
		//取出高四位的值,先将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];
	}
}
/**
*计算所有元素的总和
*/
class SumDemo{
	public static void main (String[]args){
		int result = sum (new int[] {1,2,3,4,5,6});
		System.out.println(result);
	}
	//计算数组的总和
	public static int sum(int [] arr){
		int sum = 0 ;
		//循环数组
		for (int i =  0 ; i < arr.length ; i ++ ){
			//开始累加
			sum = sum + arr[i];
		}
		return sum; 
	}
}

阶乘

class SumDemo1{
	public static void main (String [] agrs){
		System.out.println (multi (5));
	}
	//计算数的阶乘
	public static int multi (int n) {
		int result =  1 ;
		for (int i = 1 ; i  <= n ; i++){
			result = result * i;
			
		}
		return result ; 
	}
}

数组的转置操作:

/**
*计算数组的转置
*/
class TransDemo{
	public static void main (String [] agrs){
		int [][] arr = {{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}};
		out (arr);
		System.out.println("----------------------------------");
		arr = trans(arr);
		out(arr);
	}
	//专置
	public static int[] [] trans (int [] [] arr) {
		//
       for (int i = 0 ; i < arr.length -1; i ++ ){
		   for (int j = i+1 ; j < arr[i].length ;  j++) {
			   int temp = arr [i][j];
			   arr[i][j] =  arr [j][i];
			   arr[j][i] =  temp ;
		   }
	   }
	   return arr;
	}
	public static void out (int [][] arr){
		for (int i = 0 ; i < arr.length; i ++ ){
		   for (int j = 0 ; j <arr[i].length ;  j++) {
			System.out.print(arr[i][j] + "\t");
		   }
		   System.out.println();
	   }
	}
}

横向输出三维数组:

/**
*横向输出三维数组
*/
class TransDemo{
	public static void main (String [] agrs){
		int[][][] arrr = {{{1,2,3},{4,5,6},{7,8,9,}},{{10,11,12},{13,14,15},{16,17,18}},{{19,20,21},{22,23,24},{25,26,27}}};
		outHor(arrr);
	}
	public static void outHor(int [][][]arr){
		//循环行数,每个二维数组的长度
		for (int i = 0 ;i < arr[0].length; i++ ){
			//每一行的所有列
			for(int j = 0 ;j <arr.length; j++){
				//输出每个层上第i行的元素
				for(int k = 0;k <arr[j][i].length; k++){
					System.out.print(arr[j][i][k] + "\t");
				}
				System.out.print("|");
			}
			System.out.println();
		}
	}
}

java堆内存设置:

默认情况下,java内存式1/4物理内存.

常看java进程id使用jps

查看指定java进程的堆内存信息使用:jmap -heap pid

设置java堆内存参数:

java   -Xmx1g //设置最大堆内存

 -Xms1g //设置初始堆大小

递归才会造成堆内存的溢出,死循环不会导致堆内存溢出。

class Name //类名:

答:堆内存的默认最大空间是物理内存的1/4,在运行java程序时,可以通过 -Xms 初始内存的大小,-Xmx设置最大堆内存的大小。

数组拷贝:

/**
*数组的拷贝
*/
class ArryCopyDemo{
	public static void main (String [] args ) {
		int[] arr1 ={1,2,3,4,5};
		int[] arr2 = new int[arr1.length];
		copy(arr1,arr2);
		out(arr2);
		
	}
	public static void copy (int [] arr1 , int [] arr2){
		for (int i =0 ;i<arr1.length;i++){
			arr2[i] = arr1[i];
		}
	}
	public static void out (int [] arr){
		for (int i=0; i<arr.length;i++){
			System.out.println(arr[i]);
		}
	}
}