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]); } } }