黑马程序员 JAVA1到4天

发布时间:2016-12-8 12:20:15 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"黑马程序员 JAVA1到4天",主要涉及到黑马程序员 JAVA1到4天方面的内容,对于黑马程序员 JAVA1到4天感兴趣的同学可以参考一下。

-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------ 看完第一遍视屏以后,开始写总结。 一到四天中的内容中把自己认为应该注意的地方提取了一下。 配置环境变量:只有环境变量配好了,程序才能顺利运行。 静态配置环境变量就是把jdk中bin文件夹所在的位置添加到系统中的path变量里面。 动态配置环境变量: 把变化的部分单独提取出来,如: JAVA_HOME=D:\jdk1.6.0_24 path:%JAVA_HOME%\bin; 当路径改变时,只需修改JAVA_HOME指向的路径。配置环境不需要变。 系统查找文件的时候是先在当前路径下查找,再在path路径下找查找。 设置临时环境变量: 在DOS命令行中用set命令 改变path值:set Path=haha; 增加path值:set Path=haha;&path& 这只是临时变量,关闭所有DOS窗口后path就恢复原始值。 set classpath设置运行路径 set classpath= 等号后面不写任何东西,表示清空该路径 set classpath=c:\; 加分号表示,当在路径下找不到的时候,会在当前文件里面找文件 不加分号,只在配置的路径下找。 注释:在写程序的时候,最好养成注释的习惯。 //:单行注释 /*   */:多行注释 /**  */:文档注释。这个是java特有的。 关键字:赋予了特殊含义的英文单词 标识符:程序中自定义的名称。由字母,数字,_,$两符号组成 注意:1,标识符不能以数字开头,且不可以用关键字做标识符。       2,命名标识符的时候,名字尽量要有意义,增加可读性。 JAVA中的常量: 1,整数(int(4字节) short(2字节) long(8字节))。2,小数(float(4字节),double(8字节)),3,boolean型():true,flase;4字符型(byte(1字节)):用单引号括起来的数字、字母或符号。5,字符串(string):用双引号括起来的数字、字母或符号。6,null常量。 整数在java中有4个表现形式: 1,八进制:用0开头。2,十进制,3,十六进制:用0X开头;4:二进制:用0b开头 在Java 7中,新增了二进制整数可以每4位加上"_"符号加以区分,增强阅读性。如:a=0b0000_1111_1010 二进制负数在计算机中是以其补码形式存在的。 自动类型提升:当两个不同类型的数据相运算的时候,小类型的数据自动提升为大类型的数据。需注意的是,byte型数据不能自动转换成char类型。 强制转换:强制将大类型数据转换成小类型 eg: int a = 1;int b =1+'b';('b'会被自动转换成整数类型) byte b = (byte)(1+'b'); 逻辑运算,位运算就不赘述.需要注意: short a =4; a = a+5;这句话编译失败。 a +=5;这句话不会失败。会自动强制转型。 &:无论左边是真是假,右边都参与运算。 &&:当左边为假,右边不运算。 异或:不同为真,相同为假 <<: 左移运算符。 >>: 右移运算符。最高位补什么由原有数据的最高位值而定。如果最高位为0,右移后,用0补空位。如果最高位为1,右移后,用1补空位。 >>>: 无符号右移运算符。均用0补空位。 转义字符: \n:换行 \b:退格 \t:制表符 \r:回车。window系统中,回车符是由两个字符来表\r\n。 三元运算:expression?(true) statement:(false) statement. 注意:三元运算需要有一个结果。 JAVA命名规范: 包名:多个单词组成时所有字母小写 类名接口名:多个单词构成,所有单词的首字母大写。 变量名函数名:多个单词构成,第一个单词字母小写,其它单词的首字母大写 常量名:所有字母大写,多个单词之间用下划线连接。 一个java文件里面只能有一个public修饰的类或者接口。该类类名和文件名需一致。 程序控制流程: 判断结构: if语句: int a =1; if(a>0) { System.out.println(a); } if else语句 if(a==0) System.out.println("no"); else System.out.println("yes"); 选择结构: switch(expression) { case condition: break; ... default: break: } switch语句只接受(byte short int char)四种基本类型。也可以接受枚举。 无论default的位置怎么放,都是先执行case语句,最后执行default语句。 循环结构: while()先判断,后执行。 do{} while()先执行,后判断,再执行。 for(){}: for(int a=0;a<10;a++)//初始化a的值,判断如果a<10,则运行打印语句,然后a自增一次。当a大于等于10的时候,循环结束。 { System.out.print(a); } 其它控制流程: break(跳出):作用于选择结构和循环结构。跳出本循环。 如果是嵌套结构,想用break跳出指定层次,可以给每个层进行命名。 eg: q:for(int x=0;x<3;x++) { w:for(int y=0;y<4;y++) { System.out.println(x); break q;//跳出最外层的标号为q的for循环。 } } continue:只能作用于循环结构。结束本次循环,继续下一次循环。 函数(方法):定义在类中的具有特定功能的独立小程序 格式:修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2) { 执行语句; return返回值 } 定义一个函数,首先确定函数的功能,已经是否有返回值,且返回值是什么类型。 再者明确实现该功能是否有未知的内容参与运算。明确函数的参数类型和个数。 需要注意的是,函数中传入的参数是讲究顺序的。 public void method(int a,double b){} public void method(double b,int a){} 这两个函数是重载的。不是一个函数。 函数的重载: 在同一个类中,允许一个以上的同名函数,对不同的参数进行相同的功能操作。但需要参数个数或参数类型不同。 重载只看参数列表,和返回值类型无关。 虽然后面重写用的比重载多,但是重载的限制条件没有重写(也叫覆盖)那么严格。这里提前说一下覆盖。 函数的覆盖:一般在实现接口,或者继承父类时会用到。 1,覆盖的方法的定义,参数,返回值必须和被覆盖的方法的返回一致才能覆盖。 2,子类覆盖父类,必须保证子类权限大于等于父类权限才可以覆盖。 3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类; 4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。 5,静态只能覆盖静态。 数组: 同一种数据类型的集合。 静态定义:int[] arr = new int[]{1,2,3,4};可以简写成int[] arr ={1,2,3,4}; 把数据直接给数组 动态定义:int[] arr = new int[3]; 规定数组的长度,内容可以后面再加。 二维数组:数组里面的内容还是数组。 int[][] arr = new[3][4]:表示这个二维数组里面有3个一维数组,每个一维数组的长度为4. 内存结构: 栈内存:一般存储局部变量,数据使用完毕后,会自动释放。 堆内存:存放一个有内存地址值的实体。实体中的变量都有默认的初始值。他们都是有地址的 栈内存中的变量,链接着堆内存。当链接不存在,对内存的数据不再被使用的时候,jvm会自动清除掉这些不再用的数据(垃圾回收机制)。 方法区:定义的静态方法,静态成员变量,对象的方法等放在这里。优先于非静态变量,方法单独存在,以供对象调用。 常量池:对于那些使用频繁的,所占空间很少的常量一般都放在这里,方便被调用。 数组排序:数组的排序其实可以用Arrays工具类中的sort()方法。 {1,6,3,9,4,5,0} 选择排序:选择一个值,和其它所有值相比较。 for (int i=0;i<arr.length-1 ;i++ ) { for (int j=i+1;j<arr.length ;j++ ) { int temp; if (arr[i]>arr[j]) { temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } } } 冒泡排序:相邻两个数进行比较,使较大值不断后移。 for (int i=0;i<arr.length-1 ;i++ ) { for (int j=0;j<arr.length-i-1;j++ ) { int temp; if (arr[j]>arr[j+1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } 折半查找:折半查找需要数组是有序的。 int[] arr ={1,2,3,4,5,6,7,8,9}; int min,max,mid; min = 0; max = arr.length-1; mid = (max+min)/2; while (arr[mid]!=key) { if (arr[mid]<key) min = mid+1; else if(arr[mid]>key) max = mid-1; if(min>max) return -1; mid = (max+min)/2; } return mid; 进制转换:通过建立一个表进行查表。 class Convert { public static void main(String[] args) { //十进制转换成二进制: convert(45,1,1); //十进制转换成八进制 convert(45,7,3); //十进制转换成十六进制 convert(45,15,4); } public static void convert(int num,int base,int offset) { if (num==0) { System.out.println(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];//定义一个数组用来存储运算后的值。 int pose =arr.length; while (num!=0) { int temp = num&base; arr[--pose] = chs[temp]; num = num >>> offset; } /*这里代码可以优化一下。 for (int x=pose;x<arr.length ;x++) { System.out.print(arr[x]); } System.out.println(""); */ System.out.println(new String(arr,pose,32-pose)); } } 以上才是刚刚开始,下面就是JAVA的重点:面对对象思想。 -----------android培训、java培训、java学习型技术博客、期待与您交流! ------------

上一篇:[iOS] ViewController的生命周期及其加载View的步骤
下一篇:Jquery之hover用法_让li 掠过时背景变色

相关文章

相关评论