---------------------- <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>、期待与您交流! ----------------------