第一章 :Java简介:
1:Java平台 :JVM;Java API。
2:JVM :装载器;class文件检验器;解析器。
3:class文件检验器:结构检查;数据类型定义检查;字节码检验;符号引用验证。
4:API:Java应用程序编程接口,就预先建立的软件主件(类和接口)的大型集合。
5:Java语言特性:简单易学(相对c/c++语言);面向对象;分布式;健壮性;解释型;可移植性;安全性;多线程;动态(多态)。
6:Java平台上有两种应用程序:
(1):Application 可独立运行的程序,通常会有一个程序入口(main()),由Java解释器解释执行;
(2):Applet小应用程序,嵌入HTML文件里,由Java浏览器或小应用程序查看器解释执行的程序。
7:JDK:Java开发工具包(包括两部分):
(1):JRE(Java运行环境),包括JVM,API以及一些相关的支持文件;
(2):Development Tools:Java开发工具包(包括编译器和调试工具包)。
8:jdk:环境变量设置:
(1):JAVA_HOME: 安装目录
(2):path: 安装bin目录
(3):classpath(文件fileName.java目录): .
*9:Java程序内存执行过程图(加载,执行过程中内存管理)...
----------------------------
第二章:基本元素
1:标识符:就是用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符,并且标识符不能是关键字。
2:变量:是Java语言中的基本存储单位。变量是在程序运行过程中值可以改变。定义一个变量需要一个类型,一个标识符,如果需要,还可以加上一个初值。
(1):局部变量:方法及语句块中声明的变量
(2):成员变量(全局变量):方法外,类的内部声明的变量
3:常量:与变量不同,常量在程序运行过程中其值不能改变,只能有一次赋值的过程。
4:表达式:是运算符、操作数以及方法调用的序列,用来说明某个计算过程并计算结果,有一个唯一类型的值。
5:语句:Java语言中的语句用于向计算机发出操作指令。一个为实现特定目的的程序应该包含若干语句。
6:运算符:一元运算符,二元运算符,三元运算符//位运算和移位运算符,逻辑运算符,关系运算符,附值运算符。
*注意区别i++;++i; ./ "+"+的应用 /
7:Java注释:(1):单行 // ;(2):多行 /* */ ;(3):文档 /** */ 。
*8:Java规范(Java_命名规范;Java_格式规范);
9:基本数据类型(八种):
*(1):它们之间的自动转换byte;short;char--int--long--float--double
10:数组:(复合[引用]数据类型(类/接口/数组))
(1):数组是取了名的一组相同类型的变量的集合。在数组中每个变量被称作数组元素。为了在数组中引用特定的元素,需要将数组名与某种类型的整数值结合起来
,这个整型数值被称作数组的下标。
(2):一个数组元素的下标是相对于数组第一个元素的位移量,用于引用数组中的一个元素,也可以用一个产生正整型数值的任意表达式指定下标值。
(3):不规则数组动态初始化......
---------------------------
long start = System.currentTimeMillis();(取得当前时间[用在计算程序用时上])
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String temp = br.readLine(); //取得键盘输入字符串
String[] temps=temp.split(","); //分割字符串
int i = Integer.parseInt(temps[0]); //转换字符串为数字...
Character.isDigit() :判断是否为数字
--日期格式转换类--
SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd HH:mm:ss");
String jack = sdf.format(new Date());
----------------------------
第三章:控制语句
1:if{}else if{}else{}
2:switch(){case [int/char/short/byte] :语句;break; ...... Default :语句}
3:for(){}
4:while(){}; do{}while();
5:break;continue;return;
6:异常处理(自定义异常)...
(1):error和exception有什么区别?
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
: 在程序设计过程中有两种错误:一种是语法错误,语法错误在编译时会检测出来,并不会生成运行代码,语法错误也叫编译错误。另一种是运行错误,它在运行时才会发生。异
常通常指的是运行错误,它是干扰程序正常运行的不正常现象。
:了解:自定义异常、成链的异常和断言,
-------------------
**算法:控制语句+数组:
(0):100-200质数和
(1):10以类奇数JC和...
(2):费波那契数列(三种写法//变种)...
(3):递归(内存执行图)
(4):水仙花数
(5):Date[]的比较大小[排序](对象)
(6):二分法查某数在数组中的位置
(7):矩阵对角线元素和(五子棋修饰边符,判断输赢)
(8):生成一个在3-7之间的数
(9):500个小孩数三退一,求最后一个的位置
(10):杨辉三角
--- 远不只这点,多练习!
---------------------------
第四章:面向对象特性
1:类是由对象抽象出来的数据模板;在Java的世界里,万事万物都是对象。
2:this[super]引用的是当前对象。
用法1:用“.”操作符引用当前[基类]对象成员。
用法2:引用本类构造方法。
3:关键字static做为修饰符可以出现在三个位置:
(1).修饰变量 --- 静态变量
(2).修饰方法 --- 静态方法
(3).在类体中直接使用 --- 静态块
(4).另外,static还可以修饰类,但这种用法只能用于内部类。
4:关键字final做为修饰符可以出现在三个位置:
(1).修饰变量 --- 常量
(2).修饰方法 --- 最终方法
(3).修饰类 --- 最终类
5:重载---Overloading : 是Java实现静态多态的一种方式,这种方式就是“一个接口,多个方法”。当调用被重载的方法时,Java会在调用方法的实参和方法定义的形
参之间做匹配,而这个匹配不需要总是精确的,在某些情况下,Java的自动类型转换可以在重载时确定调用哪个方法。
6:封装 : 简单的说就是“信息隐蔽”,即使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。对外界来说,只需要关心类有哪些接口,能实现什么
功能,而不需要知道类是怎么实现这些功能的。
7:extends继承:就是在现有类的基础上创建新的类,能够体现代码复用。在继承关系中,通常父类具有某种一般性,子类具有某种特殊性。
(1):Java规定,一个子类只能有一个父类,叫做单一继承,Java不支持多重继承。
(2):如果定义类时不写extends关键声明继承关系,则系统默认继承Object类. Object类是java中最上层的根类。
(3):定义子类构造方法时用super调用超类构造方法,当构造方法第一句不是用this调用本类其它的构造方法,或者不是用super调用超类的构造方法,则系统会默认调
用super()。
8:覆盖:Overriding:定义子类成员方法时:一是定义子类特有的行为,二是覆盖父类的行为。
9:多态:一种对象多种形态。
(1):Instanceof运算符 : 对象变量 instanceof 类名 <<只有存在继承关系的类和对象之间才可以使用instanceof运算符进行检查判断。
(2):如果运算符左侧的变量是运算符右侧的类的一个实例,则表达式的值为true,否则为false。
10:访问权限控制:public proctcted default private
11:abstract class Test:逆着继承层次关系由下而上,类逐渐变得更为通用,很可能也更为抽象。从某种角度来说,越往上层的类越通用越抽象,这样我们就把它用作
派生其他类的基类,而非具有需要使用的特定实例的类。
13:interface ITest :是由一系列静态常量和抽象方法组成的集合,是类似于类的一种结构,比抽象类更抽象,可以理解接口是一种“纯”抽象类。
*设计模式 :............
13:package:是类的容器,是一系列相关类和接口的集合,也是对类的一种更大的封装。解决在型项目中的命名冲突。[import]
14:GC__对象的清除 :实际上就是将对象占用的内存空间释放出来。在C/C++中,这个工作需要程序员手工完成(调用析构函数),这样做会给程序员带来很多不便,特别是当程序员忘记对无用对象调用析构函数后,可能会造成系统内存溢出,我们称这种现象为“内存渗漏”。在Java中,对这种无用内存空间的释放由系统自动完成,我们称之为垃圾回收(GC,garbage collector)。
---------------
1:在Java中主要有两种参数传递的方式:
(1)、值传递:基本数据类型是值传递。把实参的“值”复制给形参,那么在方法内对形参所做的改变对实参没有影响。传递参数时,如果找不到对应的方法,基本类型
可以自动由较小类型晋升至较大类型,继续匹配。
(2)、引用传递:当向方法传递一个对象时,是按对象的引用传递的。因此,当把这个引用传递给一个方法时,接收它的形参将引用与实参相同的对象,对方法内的
对象的改变会影响被用做实参的对象。
* 2:引用参数传递示例......
public class Foo {
public static void main(String sgf[]) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
operate( a,b);
System.out.println(a "," b);
}
static void operate(StringBuffer x, StringBuffer y) {//这里会拷贝
引用a和b,拷贝成x和y,
x.append(y);//这时候x和a指向同一个对象,所以改变了x,也影响到
了引用a,所以它为AB
y = x;//但是这里,仅仅把引用Y指向了引用x,也就是a,x,y指向同一
个对象,但是原先的引用b还是指向原来的对象
}
}
* 3:多态理解示例.......
1.内存分配
Animal dog = new Dog(); 在堆区建立Dog对象,在栈区建立Animal引用,该引
用指向Dog对象
Dog dog = new Dog(); 在堆区建立Dog对象,在栈区建立Dog引用,该引用指向
Dog对象
2.使用
Animal dog = new Dog();可以使用未被重写的非privateAnimal方法,Animal
上非private所有属性,以及在Dog中重写Animal的方法
Dog dog = new Dog(); 可以使用Dog ,Animal的非 private属性和方法!!
-------------------------------
第五章:[final]String,StringBuffer,StringBuilder,
** 常用类(Math,File,Enum,Object,Calendar[Date],SimpleDataFormat,System,包装类)
(1):String : 又称为定长字符串,它表示一个String类的对象其值是不能被修改的,如果修改的话,会重新生成一个新String对象,并将引用指向那个新生成对象的
地址。
(2):StringBuffer : 是字符串缓冲区类,又称为变长字符串。意思是一个stringBuffer对象生成后,可以修改对象的内容。
(3):StringBuilder : 一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符
串缓冲区被单个线程使用的时候。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。
(4):装箱:把基本数据类型转换(包装)成与它相对应的引用类型;
拆箱:把引用类型转换(重新简化)成值类型。
--------------------
1:String常用方法(判断输入多少个类型的字符);
*2:File类遍历目录(递归)...
递归:就是允许方法内部调用方法自身的一种方法,是设计和描述算法的一种有力的工具。
3:String temp = new String("tom");内存图
* 4:重写一个对象(Object)的toString();equals()方法(hashcode).......
** 5:正则表达式:
-----------------------------
第六章:GUI编程(AWT,Swing)
***一些小程序:
**图书管理系统......
**两人五子棋......
**记事本......
**豆子吃妖精......
**模拟QQ软件......
**Java计算器……
-----------------------------
第七章:线程:
了解进程与线程的概念。
了解线程在其生命周期中状态的转换。
能够熟练的创建线程,灵活地运用线程写出反应灵敏的程序。
理解线程同步的概念,并熟练运用
1:进程: 是一种在自身定址空间中执行的相对独立的程序。
2:线程: 则是进程中的一个“单一连续控制的语句流。
-----------
**线程互斥(模似生产,消费者...)
<*小程序:记事本
-----------------------------
第八章:I/O流
熟练运用File类的相关方法。
了解流的概念以及流的层次结构。
了解字节流的概念,熟练应用类库中已存在的字节流,并能够自定义流。
理解字符流的概念并熟练应用字符流。
掌握非阻塞的NIO的应用。
------------
*读写文件(byte[]提高速度),对象Object操作(序列化)……
-----------------------------
第九章:集合(容器)
熟悉Java2之前的容器类的继承关系,熟练使用其中的类和接口。
熟悉Java集合框架,熟练使用其中的相关类和接口。
熟练使用集合类的泛型用法。
泛型 : 1: 本质上就是为类提供"类型参数",它们也被称为参数化类型(parameterized type)或参量多态(parametric polymorphism)。
2: 泛型的一个主要目标就是提高 Java 程序的类型安全。
---------------
*(1):Distinct Words Detected!(Map,输入String次数计数器);
*(2):hashSet示例(重写equals,hashCode);
* (3): hashSet排序(重写compreaTo方法)
------------------------------
第十章:网络编程
了解与网络相关的概念。
熟练使用InetAddress类构造IP地址对象。
理解Java网络中的统一资源定位符的概念及使用方法。
熟练掌握套接字的运用。
能够理解基于UDP协议的通信方式,并熟练应用。
理解基于NIO的非阻塞式通信
<*小程序:模拟QQ软件
------------------------------
第十一章:JDBC;JDBC_ODBC
---<<SQLServer…
(1):JDBc_ODBC桥连接方式…
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:Book","admin","xyz");
*Book 是数据源…
(2):JDBC:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url ="jdbc:microsoft:sqlserver: //127.0.0.1:1433";
Connection con=DriverManager.getConnection(url,"admin","xyz" );
con.setCatalog("bookTest");
---<<Orcal…
(1):
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","hr","hr");
*(1):t_user CRUD CREATE READ UPDATE DELETE 插入数据,更新,读取,删除
*(2):表id 序列; 插入一条记录后,取得id值;;
*(3):二个sql一个事务;;insert update 出错回滚
*(4):一个循环 1000 insert . 0.5s
*(5):存储过程...函数,,,查询表,,,取出来,
*(6):图片存数据库;;
------------------------------------------------
Java基础总结:
1:每个概念都要有所练习的...
2:*多写几遍...
3:**一定要多写...
4:附件:java基础资料(算法)
---------------------------------------------------
第十二章:RMI
第十三章:
第十四章:JavaBean
第十五章:Jsp