黑马程序员_java编程基础

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值