您的位置:首页 > 职场人生

黑马程序员——java基础之基本数据类型及操作方法

2013-07-10 17:22 393 查看
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

1常量与变量

 1.1常量表示不能改变的数值。

Java中常量的分类

1. 整数常量。所有整数(13,23)

2. 小数常量。所有小数(1.2,3.4)

3. 布尔型常量。较为特有,只有两个数值。true,false

4. 字符常量。将一个数字字母或者符号用单引号(’ ’)标识(’a ’,’+’)

5. 字符串常量。讲一个或多个字符用双引号标识。(“a” , “asda”)

6. null常量。只有一个数值就是:null。

对于整数:java有三种表现形式。

 十进制:0-9,满10进1.

八进制:0-7,满8进1.用0开头表示。

十六进制:0-9,A-F,满16进1.用0x开头表示

1.2变量的概念

 
内存中的一个储存区域

 
该区域有自己的名称(变量名)和类型(数据类型)

 该区域的数据可以在同一类型范围内不断变化

为什么要定义变量

 用来不断的存放同一类型的常量,并可以重复使用

使用变量注意

 变量的作用范围(一对{}之间有效)

初始化值

定义变量的格式:

 数据类型 
变量名 = 初始化值;

1.3数据类型



 class Demo1

{

       public static void main(String[] args)

       {

        //定义变量的格式

              //数据类型变量名 =
初始化值;

              //定义一个int类型变量。取值为5;

              int x = 5;

              System.out.println(x);

              //其他数据类型

              byte b = 3;

              //byte b1= 128,这时java编译就会报错,

                //损失精度以为byte的取值范围只有

                //-128~127;

                short s = 30000;

 

                 long l = 4l;

 

                 float f = 2.4f;

                 

                 double d = 24.76;

                

                 char ch = '5';

                 char ch1 ='+';

                 char ch2 = ' ';

                 char ch3 = 'a';

 

                 boolean bo = true;

                 boolean bo1 = false;

 

 

      

 

              System.out.println("Hello World!");

       }

}

逻辑型 boolean - - - Boolean

---------------------------------------------------
文本型 char 16-bit Unicode 0 Unicode 2^16-1 Character

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

byte 8bits(1字节)

short 16bits(2)
数值型 int 32bits(4)

long 64bits(8)

float 32bits(4)

double 64bits(8)

 

2. 类型转换

Java中的类型转化是强类型转换

比如

 Int i = 1;

 char c = a;

system.out.println(‘a’)

打印结果为a

但该为System .out .pringtln (‘a’+i)

打印结果为98

此时java中的ASXII
编码表将char类型的a
强制转换为它所对应的int类型的数值 97,所以答应的结果为98

如果把程序改为System.out.println((char)(’a’+i)),打印的结果为b.这是因为程序将结果强制转化为char类型的数据

 

3.操作符

3.1算术运算符:如图所示



 4%1=0;1%4=1;1%-4=1;-1%4=-1

Int x =3760;

x = x/1000*1000;

System.out.println(x);结果为3000.

字符串数据和任何数据使用+都是相连接,最终都会变成字符串

  System.out.println("5+5="+5+5);
打印结果为:5+5=55

3.2转义字符:通过\来转变后面字母或者符号的含义

\n:换行。

\b:退格。相当于backspace。

\r:按下回车键。Window系统,回车符是由两个字符来表示\r\n, linux下\n代表换行

\t:制表符。相当于tab键。

3.3赋值运算符

符号:

     =, +=
,-=
,*= ,/= , %=

short s =3;

s = s+2;//编译失败,因为s会被提升为int类型,运算后结果还是int类型。无法赋值给short类型

s+=2;/编译通过,因为+=运算符在给赋值时,自动完成了强转操作。

 

3.4比较运算符

 



运算符结果都是boolean类型。

注1:比较运算符的结果都是boolean类型,也就是要么是true,要么是false.

注2:比较运算符“==”不能误写成“=”。

 

3.5逻辑运算符

 



 

&:只要两边的boolean表达式结果,同真则真(true),有假则假(false)

|:只要两边的boolean表达式结果,同假则假(false),有真则真(true)

^:异或;和|有点不一样,当true^true= false;其他一样

 

&
和&&的特点:

&:无论左边是ture是false。右边都运算。

&&:当左边卫false时,右边不运算。

 

|:两边都参与运算。

||:当左边为true。右边不运算。

 

4.
数组

数组概念:同一种类型的集合,其实数组就是一个容器。

数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。

数组的格式

1.       元素类型[]
数组名 = new 元素类型[元素个数或数组长度];

示例:int[] arr = new int[4];

2.       元素类型[]
数组名 = new 元素类型[]{元素,元素,……};

  int [] arr = new int[]{6,5,1,7} ;

  int [] arr = {1,3,5,7};

4.1数组的基本操作

class ArrayDemo
{
public static void main(String[] args)
{   //数组的操作;
//获取数组中的元素,通常会用到遍历。
//int[] arr = new int[3];
int[] arr = {1,2,3,5,7,8,67};
//数组中有一个属性可以直接获取到数组元素个数。length.
//使用方式:数组名称.length =
System.out.println("length="+arr.length);//获取数组中元素个个数。
for (int x =0;x<arr.length ;x++ )
{

System.out.println("arr["+x+"]="+arr[x]+";");//arr[0]=0
}
}
}


数组的长度:arr.length;

下标的合法区间是[0,length-1]。

5.排序方法

5.1选择排序

//选择排序:内循环结束一次,最值出现头角标位置上
public static void selectSort(int[] arr)
{
for( int x=0;x<arr.length;x++)
{
for(int y=x+1;y<arr.length;y++)
{
if(arr[x]>arr[y])
{
//int temp = arr[y];
//arr[y] = arr[y+1];
//arr[y+1]=temp;
swap(arr,x,y);
}
}
}


 

5.2冒泡排序

//冒泡排序
public static void bubbleSort(int[]arr)
{
for (int x=0;x<arr.length ;x++ )
{
for (int y=0;y<arr.length-x-1 ;y++ )//-x;让每一次比较的元素减少,-1;避免角标越界。
{
if(arr[y]<arr[y+1])
{
//int temp = arr[y];
//arr[y] = arr[y+1];
//arr[y+1]=temp;
swap(arr,y,y+1);

}
}
}
}


 

5.3折半查找

//折半查找(注:该数组必须是有序的,提高效率)
public static int halfSearch_2(int[] arr,int key)
{
int min =0 ,max = arr.lenght-1,mid;
while (min<max)
{
mid = (max+min)>>1;

if (key>arr[mid])
min = mid+1;
else if(key<arr[mid])
max =mid-1;
else
return mid;
}
return -1;
}


---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐