一、学习java预备工作:
1、dos命令行
dir:列出当前目录下的文件和文件夹
md:创建目录
rd:删除目录
del:删除文件
exit::推出dos命令行
2、java特性:与平台无关
原理:在运行java应用程序的操作系统上安装java虚拟机(JVM)
3、java语言的环境搭建
一劳永逸方式:电脑->属性->高级->path路径添加jdk路径
临时修改方式set path = %path%;jdk目录
start新开窗口可以保持原来path
4、setclasspath配置同path配置
set classpath=c:\ 最后不加分号则不在当前目录寻找;建议使用
set classpath=.;c:\d:\ "."当前目录
5、文档注释/** */
二、语法基础
1、位运算
例题1:2*8的最有效率的计算方法 2>>3
例题2:对两个整数变量的值进行互换(不需要第三方变量)
方法一:
a= a+b;
b=a-b;
a=a-b;
方法二:
a=a^b;
b=a^b;
a=a^b;
2、三元运算符必须有运算结果
x = a>b?system.out.print(a):b这种是错误的 因为前半部分没有结果
3、swith括号里只能有四种类型byte short int char
4、for循环中间的表达式结果必须是boolean型 否则会编译失败
5、for嵌套练习经典案例:九九乘法表
class JiuJiu
{
public static void main(String[] args)
{
for(int x =1 ;x<=9 ;x++)
{
for(int y=1;y<=x;y++)
{
System.out.print(y+"*"+x+"="+y*x+"\t");
}
System.out.println();
}
}
}
6、break与continue可以添加标签,跳出多层循环
例:
w: for(int i =0;i<2;i++)
for(int j= 0;j<2;j++)
continue w;
注:循环结构中无条件continue和break;语句后不可有执行不到的语句否则会报错
三、数组
1、定义
int[] arr = new int[5];
int[] arr = new int[]{1,3,5,7};
int[] arr = {3,5,7,1};
2、选择排序
class Select
{
public static void main(String[] args)
{
int[] arr = {18,55,66,2,5,3,90,56};
selectSort(arr);
printfArr(arr);
}
public static void printfArr(int[] arr)
{
for(int i=0;i<arr.length;i++)
if(i==arr.length-1)
System.out.print(arr[i]);
else
System.out.print(arr[i] +",");
}
public static void selectSort(int[] arr)
{
for(int x =0;x<arr.length-1;x++)
{
for(int y=x+1;y<arr.length;y++)
{
if(arr[x]>arr[y])
swap(arr,x,y);
}
}
}
public static void swap(int[] arr,int x ,int y)
{
int temp;
temp= arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
3、冒泡排序
class Bubble
{
public static void main(String[] args)
{
//int[] arr = {18,55,66,2,5,3,90,56};
int[] arr = {100,55,66,23,88,75,22,44,86,55};
bubbleSort(arr);
Select.printfArr(arr);
}
public static void bubbleSort(int[] arr)
{
for(int i=0;i<arr.length-1;i++)
{
for(int j=0;j<arr.length-1-i;j++)
{
if(arr[j] > arr[j+1])
Select.swap(arr,j,j+1);
}
}
}
}
4、折半查找
class HalfSearch
{
public static void main(String[] args)
{
int[] arr = {22,23,44,55,55,66,75,86,88,100};
System.out.println(halfSearch(arr,75));
}
public static int halfSearch(int[] arr,int number)
{
int min=0;
int max=arr.length;
int half = (min+max)/2;
while(min<=max)
{
if(arr[half] < number)
min = half+1;
else if(arr[half] > number)
max = half-1;
else
return half;
half = (min+max)/2;
}
return -1;
}
}
5、查表法进制转化
class Trans
{
public static void main(String[] args)
{
ToBin(60);
ToHex(60);
ToBa(60);
ToBin(-6);
ToBin(0);
}
public static void ToBin(int number)
{
Trans(number,1,1);
return ;
}
public static void ToHex(int number)
{
Trans(number,15,4);
return ;
}
public static void ToBa(int number)
{
Trans(number,7,3);
return ;
}
public static void Trans(int number,int base,int offset)
{
char[] HexChar = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
char[] result = new char[32];
if(number==0)
{
System.out.print(0);
return;
}
int pos = result.length;
while(number!=0)
{
int num = number&base;
number = number >>>offset;
result[--pos] = HexChar[num];
}
for(;pos<result.length;pos++)
System.out.print(result[pos]);
System.out.println();
}
}
6、二维数组
int[][] arr = new int[3][];
arr[0] = new int[3];
arr[1] = new int[1];
arr[2] = new int[2];