黑马程序员_面向对象之前的Java基础总结

  ------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

这里我只分享了比较重要的知识点


1.常用dos命令
*d:--回车 盘符切换
*dir--列出当前盘符中的所有文件夹及文件(directory)
*md--创建目录(make directory)
*rd--删除目录(remove directory)
*cd--进入指定目录(change directory )
*cd..--退回到上一级目录(change directory)
*cd\--退回到根目录(change directory)
*del--删除文件(delete)
*exit--退出dos命令
*cls --清屏(close)
*Alt(Alternative)交换,替换
*Tab(table)缩进
*Shift转换键
*Ctrl(control)控制
*IDE 集成开发环境
*jps服务端网页
2.java语言概述
(1).java语言三种技术架构 JAVASE,JAVAEE,JAVAME
javase  (桌面程序开发) platform standard edition
javaee (网页程序开发)platform enterprise edition
javame(嵌入式系统程序开发)platform micro
(2)  JRE,JDK
**JRE JVM+java核心类库
jvm(java virtual machine)
jre(java runtime environment)
**JDK JRE+java tools
jdk(java development kit)




1:数据类型
(1)java语言分为两种数据类型
A:基本数据类型
B:引用数据类型(类,接口,数组)
***byte 和 short不能和char之间互相转换,byte可以直接赋值给short,但是
他们三者在计算时首先会转换为int类型
2.位运算符2<<3
<<一个整数向左移动几位就乘以2的几次幂
>>一个整数向右移动几位就除以2的几次幂,高位是0就补0,高位是1就补1
3. 规范:
见名知意
包名:所有字母都小写,cn.itcast.bank.user
类名:类名每个单词的首字母大写
方法名:第一个单词首字母小写,其他单词首字母大写  getName(){}          
           驼峰式命名规范
变量名:同方法名
常量名:所有字母都大写
a==97;
A==65;
‘0’=48;
byte 范围-128---127   0x7f
short范围-32768--32767   0x7fffffff

注意:
* 定义变量的扩展形式:
       int a,b,c=10;
等价于 int a;
       int b;
       int c =10;
   int a;
   a = 10;
   int a=10,b;

数组查找(普通查找)
获取最值(最大值,最小值)
//数组的遍历
/*
格式3:int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};
定义一个名称为arr的二维数组
二维数组中的有三个一维数组
每一个一维数组中具体元素也都已初始化
第一个一维数组 arr[0] = {3,8,2};
第二个一维数组 arr[1] = {2,7};
第三个一维数组 arr[2] = {9,0,1,6};
第三个一维数组的长度表示方式:arr[2].length;
*/
/*
格式2:int[][] arr = new int[3][];
二维数组中有3个一维数组
每个一维数组都是默认初始化值null
可以对这个三个一维数组分别进行初始化
  arr[0] = new int[3];
  arr[1] = new int[1];
  arr[2] = new int[2];
*/



封装 (encapsulation)
继承 (inheritance)
多肽 (polymorphism)
**选择排序selection sort
原理:如果拿0角标上的元素依次和后面的元素进行比较,
                      第一次内循环结束后,最小值出现在了0角标位置

for (int x = 0;x < arr.length - 1;x++){
for (int y = x + 1;y < arr.length;y++){
if (arr[x] > arr[y]){
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}

**冒泡排序
原理:两个相邻元素进行比较,第一次比较完以后,最大值出现在了最大角标处。
for (int x = 0;x < arr.length - 1; x++){
//-1防止角标越界
//-x为了提高效率
for (int y = 0;y < arr.length - 1 - x;y++){//6
if (arr[y] > arr[y+1]){
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
B:有序数组 二分查找
数组长度是6,最大角标值是5
public static int getIndex(int[] arr,int key) {
int min = 0;
int max = arr.length-1;
int mid = (min + max)/2;
while (key != arr[mid]){
if (key > arr[mid]){
min = mid + 1;
}else if (key < arr[mid]){
max = mid - 1;
}
if (min > max){
return -1;
}
mid = (min + max)/2;
}
return mid;

}
(2)数组反转
要求:给一个数组让其反转,而并不是反过来遍历
public static void main(String[] args) {
int[] arr = {3,2,1,5,4,6};//6,4,5,1,2,3;
revArray(arr);
System.out.println(print(arr));
Arrays.
}

//定义反转的方法,经过分析我们发现需要对调的角标是两个变化的变量
//第一次让头角标和尾角标对调,然后让头角标自增,尾角标递减再对调
public static void revArray(int[] arr) {
//int start = 0;
//int end = arr.length-1;
for (int start=0,end = arr.length-1;start<end ;start++, end--){
//角标值每变化一次就对调一次
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}

}




int[] y, x[];
int[] y;一维数组
int[] x[];二维数组
(a) x=y; no
(b)x[0]=y; yes
(c)x[0] = y[0];//no
(d)x = y[0]; //no
(e)x[0][0] = y[0];




枚举总结
枚举的作用介绍枚举,可以对只有几种取值可能的东西,进行限定,加入你取值不是限定中的其中之一,那么编译器就会报错,这样大大提高了程序的安全性,健壮性!二。枚举的实现原理枚举的原理,就好像是单例模式,把构造方法私有化,不要让别人创建对象,而由自己对外提供几个自己这个类的静态常量对象,这样,在赋值的时候,只能选我提供的这几个静态常量对象,而不能自己new对象!所以每个枚举元素都是一个对象!
2.自定义的枚举可以有抽象方法,该抽象方法必须由枚举的元素对象去实现,只要在枚举元素后面加个括号,括号后面在加个大括号,里面写个抽象方法的实现,就代表该元素对象是枚举类的子类!!
3.定义枚举用enum关键字,类似class关键字,枚举是一个特殊的类,枚举的取值范围,元素列表,必须定义在第一行,最前面,多个元素用逗号分隔,最后个元素用分号结束!!枚举的构造方法必须私有化!枚举可以有带参数的构造方法,调用该构造方法,只要在元素后面加个()括号传个相应的参数就可!
4.new Data(30){}。代表创建一个Data的子类,并调用父类有参数的构造方法!枚举当之有一个元素成员时,那就是一个单例

猜你喜欢

转载自634157146.iteye.com/blog/2092082
今日推荐