Java中数组的定义:
一维数组的定义和使用:
int []num; //定义一个num的一维数组
num=new int[3]; //为num数组分配空间
以上也可以写为:int [] num=new int[3];
一维数组初始化: int[] num=new int [] {1,2,3}; //注意:这样使用时不能在[]内给分配大小,否则报错。
也可以用下标初始化:
int [] num=new int[3]; //分配三个空间 注意 数组的下标是从0开始的.
num[0]=1;
num[1]=1;
num[2]=1;
System.out.println(num[0]); //用于输出.
关于二维数组的初始化和定义;
int [] [] num;
num=new int[3] [4]; //三行 四列
num [0] [1]=12; //初始化
int [][] num =new int [3][2]; // 这样也是允许的
二维数组的初始化:
int [][] num=new int[][] {{1,2,3},{1,2,3}}; //正确的初始化,注意,和一维数组一样,在初始化new [][] 这里不允许给出分配空间大小,否则会报错.
特别注意一种错误写法:int [][] num=new int[][]{1,2,3,4,5,6,}; //error 二维不是一维数组
另一种初始化方法:
int [][] num={{1,2,3},{1,2,3}}; //也是ok的。
还有一种不规则的初始化方法:
int [][] num={{1,2,3},{,1,2},{,3}}; //没有错,很灵活.注意: {} 代表行..里面的值代表列.
关于i++ 与++i的操作:
i++ 先拿i 的值参与运算 在++
++i 先++在参与运算.
同理 i-- 和--i 也就明白了.
关于IF,| While, | do...While .| For, | Switch..case ..default. ,| Break
具体语法就不讨论了...
Java的For语句和C语言的一个细小差别:在C语言中 for(int i i<2 i++){} 中的i 的作用域是在for语句的{}的下一个括号,而在Java中的作用紧限于For 语句括号内,在外不能访问...
一个字节可以表示 256 种数值。范围是0—255。
原码:
将最高位做为符号,以0代表正,1代表负。 但0 和-0是同一个.在计算机里正+0: 00000000 -0:10000000
反码:
定义:一个数如果为正,则它的反码与原码相同,一个数如果为负,则符号位为1,其他各为是对原码取反。
+7的反码:00000111 。- 7的反码:11111000 //红色为符号位
+0 的反码:00000000 。 -0的反码:11111111 //红色为符号位
由于原码和反码对于+0和-0表示不唯一,所以计算机都没有采用正码和反码做为表示方式......
利用溢出将减法变为加法:
十进制:9-4=5 4+6=10 我们将6做为4的补数 将上式改为加法 9+6=15 去掉高为1(减10) 等于5...
十六制:C-7=5 7+9=16 我们将9做为7的补数 将上式改为加法 C+9=15 去掉高为1(减16) 等于5...
在二进制中,如果一个数字超过8位,则被丢弃1 00000000 则1 被丢弃
补码:
定义:一个数如果为正则它的原码,反码,补码相同。为负,则符号位为1,其余各为对原码取反,然后整个数加1。
补码中的 +0为:00000000 ,-0:1 00000000 。可以看出1 是被丢弃的前后0 是唯一的。
所以计算机用补码...
Java中的与,或,非,异或:
与(&&):只有两个都为真为真。
或(||):任意一个为真就为怎
非(!):取反
异或(^):相同为假,不同为真
Java API sun 公司提供的Java类库的类,接口,方法,在此不列,请下去细细钻研。
Java面象对象编程
面向对象编程和面向过程编程的区别:
过程化程序设计先确定算法,在确定数据结构。
对象化程序设计先确定数据结构,在确定算法。
对象一般都具有状态(变量)和行为(方法)。
把相似的对象归为一类,类是创建对象模版,对象是类的实例。
从程序设计角度,类是面向对象程序中最基本的程序单元。类实质是定义了一个数据类型,用new创建实体对象.
面向对象考虑问题的思路:
面向对象会把问题首先抽象,提取问题的共性,也就是定义一个类,;类中有响应的方法,在用类的实例去调用类的方法,去实现。
java的反编译,使用sun 公司提供的javap 类名 .会打印出定义的变量和方法。、
New关键字的作用:
为对象分配内存空间。引起对象构造方法的调用。为对象返回一个引用。
方法重载:
重载构成条件:方法名称相同,但参数类型或参数个数不同,才能构成方法重载。、
特殊变量 this :
this变量代表对象本身,使用this变量区分成员变量和局部变量。
this可以方便调用构造方法。
例子:构造方法重载后,可以在默认构造方法内使用this(1,1) 调用重载的参数构造方法。
一个类的所有对象,调用成员方法在内存中只有一份拷贝,尽管内存中可能有多个对象。
而数据变量在类的每一个对象所在的内存中都存在一份拷贝。
static 修饰符:
static 修饰的方法不需要产生对象,就可以被类名直接调用,static 修饰的方法,内的变量也要修饰为static 。
static 静态方法在类加载时候就分配内存空间,所以变量也要在类加载时候分配内存,所以也要用static 。
在一个非static 的方法中,是可以调用static 的方法和static 变量的。
在静态方法中不能调用非静态的方法和引用非静态的变量。反之则可以。
static 修饰的变量只开辟一块内存空间。
final 修饰的变量为常量,必须在声明时进行初始化。
继承:
在Java中通过关键字extends继承一个已有的类。Java不允许多重继承。
方法重写:
在子类中定义一个与父类同名,返回类型,参数类型均相同的一个方法,称为方法重写。
super关键字:
方法重写发生在子类与父类之间。如果父类的方法被重写,并且想调用父类的方法可以使用super.***,(***代表父类的方法)。在子类中想访问父类被重写的变量和方法可以使用super.***。
方法重载:
方法重载是在一个类当中,当我们传递参数的不同,调用相应的方法。
可以使用instanceof 判断一个对象是不是一个类的实例
如:
if(an instanceof Fise)
{如果是的an 是 Fise 的对象话打印是}
else{否则打印否}
子类可以说是父类的一个实例,但一般不这么说。
Java 包的概念(Package)
package 语句必须是Java源文件的第一句。如 package age;
编译带包的类,如:javac -d . jc.java 责是在当前目录生成一个文件夹
import语句 引入包中的类,import java.io.File;
引入整个类: import java.sql.*;
访问修饰符:default protected ptivate
public
同类: √ √ √ √
同包: √ √ √ ×
子类: √ √ × ×
不同包: √ × × ×
default 修饰的类在不同的包内不可以访问。
其他修饰符:
final:被修饰的类不允许被继承,被修饰的方法不允许被重写。
abstract:抽象,声明为抽象的方法,没有方法体。如果方法被抽象,它的类也要抽象类。抽象类不能实例化一个对象,继承抽象类的子类,一定要重写抽象类所有的抽象方法。
static:
native:用于连接外部文件如C语言写的代码。、
java中的垃圾内存是自动回收的。
Java中接口的运用:
接口可以多重继承。接口中的所有方法都要求实现。
在接口中所有的方法都是抽象的,没有方法体。
定义一个接口使用interface 关键字。实现接口使用 implements关键字。可以多重继承用","分割
去实现一个接口时,要在实现的方法前加public 提高访问权限。否则报错。
下次40
MYSQL 可视化编程
推荐用mysql-front或者Navicat,两个都很不错。
一些要看的书:数据结构 数据库原理 编译原理
一些精华帖:http://blog.csdn.net/zdg/archive/2007/03/26/1541677.aspx
只要我竭尽全力,我就能做成任何我愿意做的事情。 盖茨的一句话