------- android培训、java培训、期待与您交流! ----------
常量与变量
(1)常量表示不能改变的数值。
Java中常量的分类:
1、整数常量。所有整数。
2、小数常量。所有小数。
3、布尔型常量。较为特有,只有两个数值,true false。
4、字符常量。将一个数字字母或符号用单引号('')标识。
5、字符串常量。将一个或多个字符用双引号标识。
6、null常量。只有一个数值就是null。
(2)对于整数:java有三种表现形式
十进制:0-9,满10进1
八进制:0-7,满8进1,用0开头表示
十六进制:0-9,A-F,满16进1,用0x开头表示
负数的二进制表现形式:
6=00000000000000000000000000000110
-6:其实就是6的二进制取反+1
110取反1111-1111 1111-1111 1111-1111 1111-1001加一1111-1111 1111-1111 1111-1111 1111-1010
十进制转换成二进制:除以2,可以整除取0不可以整除取1,倒着取
二进制转换成十进制:位数上的值*2的n次幂相加,n是位数
转换成16进制:先转换成二进制,然后4个二进制位就是一个十六进制位
转换成8进制:先转转成二进制,然后三个二进制位代表一个八进制位
获取十进制位的二进制数:Integer.toBinaryString(-6)
负数的最高位都是1
(3)Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。
数据类型
1、基本数据类型:数值型(整数类型:byte,short,long);字符型:char;布尔类型:boolean
2、引用数据类型:类:class;接口:interface;数组:[]
long l=4l;//后面加l
float f=2.3f;//后面加f
double d=34.56;
整数默认:int ;小数默认:double
强制转换:b=(byte)(b+2);
转义字符:通过\来转换后面字母或者符号的含义
\n换行
\b退格,相当于backspace
\r按下回车键,windows系统时\r\n
\t制表符,相当于tab键
switch只接收四种类型:byte short int char;case没有顺序
如果对具体数值判断,数值不多,用switch因为效率稍高。其他情况对区间的判断,对结果boolean类型判断,使用if,if的使用范围更广。
1、变量有自己的作用域,对于for来讲,如果将用于循环的增量定义在for语句中,那么该变量只在for语句中有效。for语句执行完毕,该变量在内存中被释放。
2、for和while可以进行互换。如果需要定义循环增量,用for更为合适
当要对某些语句执行很多次时,就是用循环结构。
w:for(int x=0;x<3;x++)
{
q:for(inty=0;y<4;y++)
{
break w;//跳出外循环
}
}
数组的定义
格式:int[] arr=new int[5];//元素类型[] 数组名=new 元素类型[元素个数或数组长度]
int[] arr=new int[]{3,5,1,7};
in[] arr={3,5,1,7};
元素类型[] arr=new 元素类型[]{元素,元素,...};
二维数组
int [][] arr=new int[3][2];折半查找,提高效率,但是必须要保证该数组是有序的数组
min=0;
max=arr.length-1;
mid=(min+max)/2;
while(arr[mid]!=key)
{
if(key>arr[mid])
min=mid+1;
else if(key<arr[mid])
max=mid-1;
if(min>max)
return-1;
mid=(max+min)/2
}
return mid;
查表法十进制-十六进制
public static void toHex(int num)
{
char[]chs={'0','1','2','3','4',
'5','6','7','8','9',
'A','B','C','D','E','F'}
//定义一个临时容器。
char[]arr=new char[8];
intpos=arr.length;
while(num!=0)
{
inttemp=num&15;
arr[--pos]=chs[temp];
num=num>>>4;
}
System.out.println("pos="+pos);
//存储数据的arr数据遍历
for(intx=pos;x<arr.length;x++)
{
System.out.println(arr[x]+",");
}
}
查表法十进制-二进制
public static void main(String[] args)
{
toBin(6);
}
public static void toBin(int num)
{
//定义二进制的表
char[]chs={'0','1'};
//定义一个临时存储器
char[]arr=new char[32];
//定义一个操作数组的指针
intpos=arr.length;
while(num!=0)
{
inttemp=num&1;
arr[--pos]=chs[temp];
num=num>>>1;
}
for(intx=pos ;x<arr.length;x++)
{
System.out.print(arr[x]);
}
}
进制转换
class ArrayTest
{
public static void main(String[] args)
{
toBin(-6);
toHex(-60);
}
//十进制->二进制
public static void toBin(int num)
{
trans(num,1,1);
}
//十进制->八进制
public static void toBa(int num)
{
trans(num,7,3);
}
//十进制->十六进制
public static void toHex(int num)
{
trans(num,15,4);
}
public static void trans(int num,intbase,int offset)
{
if(num==0)
{
System.out.print(0);
return;
}
char[]chs={'0','1','2','3','4',
'5','6','7','8','9',
'A','B','C','D','E','F'}
char[]arr=new char[32];
intpos=arr.length;
while(num!=0)
{
inttemp=num&base;
arr[--pos]=chs[temp];
num=num>>>offset;
}
for(intx=pos ;x<arr.length;x++)
{
System.out.print(arr[x]);
}
}
}