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]);
}
}
}本文出自 “mixiaoqi” 博客,谢绝转载!
原文:http://mixiaoqi.blog.51cto.com/5822656/1831755