java笔记Word格式文档下载.docx
- 文档编号:17038330
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:29
- 大小:491.28KB
java笔记Word格式文档下载.docx
《java笔记Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《java笔记Word格式文档下载.docx(29页珍藏版)》请在冰豆网上搜索。
java语言是面向对象的
java语言是跨平台(操作系统)的[即一次性编译,到处运行]
java是高性能的
java程序的执行
jre(java运行环境)
java的工具java的编译器:
javac.exe
java解释执行器:
java.exe
java的类库(3600多类常用的150多个)
jre的安装与配置:
安装---->
添加环境变量即可(path想用的jdk地址就行了)
程序中必须有如下注释:
/*
*@author:
韩存兴
*@function:
*@date:
2013.5.6
*/
第一个java语言编译器是在1995年推出的.
关键字:
(共51组)
保留字:
指现有java版本尚未使用,但以后版本可能会作为关键字使用.(共14组)
1.2、java基础知识
基本数据类型:
整数类型byte、short、int、long
byte:
一个字节-128到127
short:
两个字节-32768到32767
int:
四个字节-2147483648到2147483647
long:
八个字节
运算符
算术运算符:
加(+)、减(-)、乘(*)、除(/)、取模(%)
自加(++):
a++;
-->
a=a+1;
自减(--):
b--;
--->
b=b-1;
左加(+=)、左减(-=)、左除(/=)、左取模(%=)
注意:
前加加(减减)和后加加(减减)的含义:
关系运算符:
等于、大于、小于、大于等于、小于等于、不等于
逻辑运算符:
与(&
&
)、或(||)、非(!
)
三大流程控制
顺序控制:
程序按代码顺序执行
分支控制:
单分支:
if{}
双分支:
if{}else{}
多分支:
if{}elseif{}elseif{};
switch()
{
case常量1:
语句1;
case常量2:
语句2;
….
case常量n:
语句n;
default:
语句;
}
switch中的可用数据类型主要是:
byte、short、int、char、enum等
循环控制:
代码可以循环执行
for(条件)循环语句(先判断后执行)
while(条件)循环语句(先判断后执行)
do{}while(条件)循环语句(先执行后判断)
1.3、java面向对象编程
类与对象
类与对象的区别与联系:
a)类是抽象的,概念的,代表一类事物
b)对象是具体的,实际的,代表一个事物
c)类是对象的模板,对象是类的一个个体,实例
类的成员方法(函数)-特别说明
a)方法的参数列表可以是多个
b)方法可以没有返回值
构造方法
类的构造方法介绍
构造方法是类的一种特殊方法,它的主要作用是完成对新对象的初始化,它有以下几个特点:
a)方法名和类名相同
b)构造方法没有返回值
c)主要作用是完成对新对象的初始化
d)在创建一个类的新对象时,系统会自动的调用该类的构造方法
e)一个类可以有多个构造方法
f)每一个类都有一个默认的构造方法
this不能在类定义的外部使用,只能在类定义的方法中使用
类变量:
类变量是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量.
定义语法:
访问修饰符static数据类型变量名;
访问类变量:
类名.类变量名或者对象名.类变量名
类方法属于所有对象实例的,其形式如下:
访问修饰符static数据返回类型方法名(){}
类方法中不能访问非静态变量
使用:
类名.类方法名或者对象名.类方法名
java中规则:
类变量原则上用类方法去访问
类变量与实例变量的区别:
a)加上static称为类变量或静态变量,否则称为实例变量
b)类变量是与类相关的,公共的属性
c)实例变量属于每个对象个体的属性
d)类变量可以通过类名.类变量名直接访问
类方法:
a)类方法属于与类相关的,公共的方法
b)实例方法属于每个对象个体的方法
c)类方法可以通过类名.类方法直接访问
java面向对象编程的四大特征:
继承、抽象、封装、多态:
继承:
继承可以解决代码复用
子类最多只能继承一个父类
java所有类都是Object类的子类
JDK6中有202个包3777个类、接口、异常、枚举、注释、错误
在做开发的时候,建议多使用jdk帮助文档和多问google大神
抽象:
封装:
把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的操作,才能对数据进行操作
封装-访问控制修饰符
java提供四种访问控制修饰符号控制方法和变量的访问权限:
公开级别:
public
受保护级别:
protected
默认级别:
没有修饰符号,向同一个包的类公开
私有级别:
private
多态:
就是指一个引用在不同的情况下的多种状态
包的三大作用:
区分相同名字的类
当类很多时,可以很好的管理
控制访问范围
包-命名规范:
package小写;
如packagecom.hcx.dog;
包的引入:
importcom.hcx.dog;
方法覆盖:
子类有一个方法,和父类的某个方法的名称、返回类型、参数一样。
方法覆盖的注意事项:
子类的方法的返回类型、参数、方法名称,要和父类方法的返回类型、参数、方法名称完全一样,否则编译出错。
子类方法不能缩小父类方法的访问权限。
1.4集合框架、泛型、异常
1.4.1集合
员工管理系统的功能要求:
当有新员工时,将该员工加入到管理系统
可以根据员工号,显示该员工的信息
可以显示所有员工信息
可以修改员工的薪水
当员工离职时,将该员工从管理系统删除
可以按照薪水从低到高顺序排序
可以统计员工的平均工资和最低和最高工资
数组定义多大?
解决之道:
链表或是集合类
可以动态的增加和删除,Java集合类的主要分类:
List结构的集合类:
ArrayList类、LinkedList类、Vector类、Stack类
Map结构的集合类:
HashMap类、Hashtable类
Set结构的集合类:
HashSet类、TreeSet类
Queue结构的集合:
Queue接口
集合类的主要作用就是增、删、改、查、显示。
LinkedList的讲解:
ArrayList:
添加同一个数据,不会覆盖.
HashMap:
添加同一个数据,会覆盖.
演示LinkedList/Vector/Stack/HashMap/Hashtable
HashMap和Hashtable比较:
相同点:
HashMap与Hashtable都是java的集合类,都可以同来存放java对象。
不同的:
1.历史原因
Hashtable是基于陈旧的Dictionary类的,HashMap是java1.2引进的Map接口的一个实现.
2.同步性
Hashtable是线程同步的,这个类中的一些方法保证了Hashtable中的对象是线程安全的,而HashMap则是异步的,因此HashMap中的对象并不是线程安全的,因为同步的要求会影响执行的效率,所以如果你不需要线程安全的集合,那么使用HashMap是时一个很好地选择,这样可以避免不必要的性能开销,从而提高效率.
3.值
HashMap可以让你将空值作为一个表的条目的key或value,但是Hashtable是不能放入空值的(null).
ArrayList和Vector的比较:
ArrayList与Vector都是java的集合类,都可以用来存放java对象。
不同点:
1.同步性
Vector是线程同步的,这个类中的一些方法保证了Vector中的对象是线程安全的,而ArrayList则是异步的,因此ArrayList中的对象并不是线程安全的,因为同步的要求会影响执行的效率,所以如果你不需要线程安全的集合,那么使用ArrayList是一个很好地选择,这样可以避免由于同步带来的不必要的性能开销,从而提高效率.
2.数据增长
从内部实现机制来将ArrayList和Vector都是使用数组Array来控制集合中的对象,当你向这两种类型中增加元素的时候,如果元素的数目超出了内部数组目前的长度他们都需要扩展内部数组的长度,Vector缺省情况下自然自动增长原来一倍的数组长度,ArrayList是原来的50%,所以最后你获得的这个集合所占的空间总是比你实际需要的要大,所以如果你要在集合中保存大量的数据,那么使用Vector有一些优势,因此你可以通过设置集合的初始化大小来避免不必要的资源开销。
总结:
1.如果要求线程安全,使用Vector、Hashtable
2.如果不要求线程安全,应能使用ArrayList、LinkedList、HashMap
3.如果要求键值对,则使用HashMap、Hashtable
4.如果数据量很大,又要求线程安全考虑Vector。
练习题:
1.4.2泛型
泛型的基本概念
泛型是javaSE1.5的新特征。
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
java引入泛型的好处是安全简单。
泛型的好处是在编译的时候检查类型安全,并且所以的强制转换都是自动和隐式的,提高代码的重用率。
java的反射机制:
泛型的优点:
1.类型安全
2.向后兼容
3.层析清晰
4.性能较高,用GJ编写的代码可以为java编译器和虚拟机带来更多的类型信息,这些信息对java程序做进一步优化提供条件。
1.4.3异常
当出现程序无法控制的外部环境问题(用户提供的文件不存在,文件内容损坏,网络不可用…..)对,Java就会用异常对象来描述。
java中用2种方法处理异常:
1.在发生异常的地方直接处理;
2.将异常抛给调用者,让调用者处理。
异常分类:
1.检查性异常:
java.lang.Exception
检查性异常:
程序正确,但因为外在的环境条件不满足引发。
2.运行期异常:
java.lang.runtimeException
运行期异常:
这意味着程序存在bug,
3.错误:
java.lang.Error
错误:
一般很少见,也很难通过程序解决,他可能源于程序的bug,但一般更可能来源于环境问题,如内存耗尽,错误在程序中无需处理,而由运行环境处理。
异常处理:
1.try...catch
2.finally
如果把finally块置try...catch…语句后,finally块一般都会得到执行,它相当于一个万能的保险,即使前面的try块发生异常,而又没有对应异常的catch块,finally块待马上执行。
以下情形,finally块将不会执行:
1.finally块发生了异常
2.程序所在线程死亡
3.在前面的代码中用了System.exit();
4.关闭CPU。
第二章java图形界面(gui)goo-e
2.1、图形用户界面(gui)的介绍
图形用户界面(GraphicsUserInterface):
是用户与程序交互的窗口。
满汉楼餐饮系统的介绍
技术经理需求:
编程技术、行业知识
用什么开发gui?
2.2、eclipse开发工具的介绍
1.eclipse最早是IBM附属公司OTI开发的;
2.eclipse是一个开源(源代码可以用)的,可扩展的集成开发环境,已经成为目前最流行的java开发工具;
3.可以开发javase的项目,但不能开发javaee项目,需要安装web开发插件(lomboz或是myeclipse)。
ide:
集成开发环境。
2.3、swing组建的介绍
Text、Menus、Widgets
Widgets:
小组件
2.4、三大常用布局管理器
布局管理器—介绍
概念:
组件在容器中的位置和大小是由布局管理器来决定的,所有的容器都会使用一个布局管理器,通过它来自动进行组件的布局管理。
种类:
java提供了五种布局管理器:
流式布局管理器(FlowLayout)、边界布局管理器(BorderLayout)、网格布局管理器(GridLayout)、卡片布局管理器(GardLayout)、网格包布局管理器(GridBagLayout),其中前三种是最常见的布局管理器。
边界布局管理器(BorderLayout):
简单的划分为东南西北中5个区域,中间区最大。
边界布局BorderLayout—注意事项:
1.不是五个部分都必须添加;
2.中部组件会自动的调节大小;
3.Jframe,JDialog默认布局管理器就是BorderLayout。
流式布局管理器(FlowLayout):
是按照组件的添加次序将按钮(其他组件也可以)组件从左到右放置在容器中,当到达容器边界时,组件将放置在下一行中,FlowLayout可以以左对齐,居中对齐,右对齐的方式放排列到组件。
流式布局FlowLayout—注意事项:
1.不限制他所管理的组件大小,允许他们有最佳大小
2.当容器被缩放时,组件的位置可能发生变化,但组件的大小不变
3.默认组件式居中对齐,可以通过FlowLayout(intalign)函数来指定对齐方式。
网格布局管理器(GridLayout):
GridLayout布局,它将容器分割成多行多列,组件被填充到每个网格中,添加到容器中的组件首先放置在左上角的网格中,然后从左到右放置其他的组件,当占满该行的所有网格后,接着继续在下一行从左到右放置组件。
网格布局GridLayout—注意事项:
1.组件的相对位置不随容器的缩放而变化,但大小会变化
2.所有组件大小相同
3.可以通过GridLayout(introws,intcols,inthgap,intvgap)来指定网格的行/列,水平间隙/垂直间隙。
参数说明:
rows:
行数cols:
列数hgap:
垂直间隙vgap:
水平间隙
开发GUI程序步骤:
1.继承Jframe
2.定义需要的组件
3.创建组件
4.设置布局管理器
5.添加组件
6.显示窗体
面板组件(Jpanel)
Jpanel:
面板组件,非顶层容器。
一个界面只可以有一个Jframe窗体组件,但可以有多个Jpanel面板组件,而Jpanel上也可以使用FlowLayout,BorderLayout,GridLayout等各种布局管理器。
面板组件GridLayout—注意事项:
1.Jpanel是Jcomponent的子类
2.属于容器类组件,可以加入别的组件
3.默认布局管理容器是流式布局(FlowLayout)
几个常用组件
1.文本框(JtextFiled)
2.密码框(JpasswordFiled)
3.标签(Jlabel)
4.复选框组件(JcheckBox)
5.单选框组件(JradioButton)
6.下拉框组件(JcomboBox)
7.列表框组件(Jlist)
8.滚动窗格组件(JscrollPane)
9.多行文本框组件(JtextArea)
10.选项卡窗格(页签组件)(JtabbedPane)
一般情况下列表框组件和滚动窗格组件是结合使用的,目的是让列表框中的选项可以有滚动条支持。
记事本界面:
涉及到新的swing组件:
1.菜单组件
JmenuBar菜单条组件树干
Jmenu菜单组件树枝
JmenuItem菜单项组件树叶
2.二级菜单制作
Jmenu里面可以嵌套Jmenu
3.工具条组件
JtoolBar容器类组件
2.5、java绘图
java绘图坐标体系
以像素为单位,像素是计算机屏幕上最小的显示单位。
一个像素等于多少厘米?
像素是一个密度单位,厘米是长度单位,两者无法比较。
java绘图技术
绘图原理
Component类提供了两个绘图相关的方法:
paint(Graphics)绘图组件的外观
repaint()刷新组件的外观
以下情况paint()将会被调用:
窗口最小化,再最大化
窗口的大小发生变化
repaint函数被调用
2.6、java事件处理机制
java事件处理采用的是”委派事件模型”,所谓”委派事件模型”是指当事件发生时,产生时间的对象(事件源),会把此”信息”传递给”事件的监听者”处理的一种方式,而这里所说的”信息”实际上就是java.awt.event事件类库里某个类所创建的对象,我们暂时把它称为”事件的对象”.
总结—事件编程步骤:
1.编写事件处理类(事件监听者)
2.根据需求给事件处理类实现相应的事件监听器接口
3.在事件处理类中重写(实现)其事件处理的函数
4.在事件源类中指定该事件的监听器(响应者)是谁
事件源:
事件源是一个产生事件的对象。
事件:
事件就是承载事件源状态改变时的信息对象。
或者说事件是事件源向事件监听者
事件监听器接口:
不同的事件监听其接口可以监听不同的事件,一个类可以实现一个事件监听器接口,也可以实现多个监听接口。
使用图片代替绘图会占用非常大的内存和CPU
实现一个类监听的步骤:
a.实现相应的接口KeyListener,ActionListener
b.把接口的处理方法根据需要进行重写
c.在事件源上进行监听注册
d.事件传递是通过事件类的
常用的一些事件处理机制—事件类
线程:
结论:
不管是通过继承Thread,还是通过实现Runnable接口创建线程,他们的一个对象,只能启动一次,否则就会抛出异常。
创建线程的方法区别:
1.继承Thread2.实现Runnable接口
原子性:
当a线程在执行某段代码时,别的线程必须等待。
synchronized(Object){你要同步的代码}
对同步机制的解释:
java任意类型的对象都有一个标志位,该标志位具有0,1两种状态,其开始状态为1,当某个线程执行了synchronized(Object)语句后,object对象的标志位变为0的状态,知道执行整个synchronized(Object)语句中的代码块后,该对象的标志位又回到了1状态。
当一个线程执行到synchronized(Object)语句的时候,先检查object对象的标志位,如果为0状态,表明已经有另外的线程正在执行synchronized(Object)包含的代码,那么这个线程将暂时阻塞,让出CPU资源,直到另外的线程执行完成相关的同步代码,并将object对象的标志位变为1状态,这个线程的阻塞就被取消,线程能继续运行,该线程将object的标志位变为0状态,防止其它的线程再次进入相关的同步代码块中。
对象的标准位专业术语就是对象锁,文件锁
2.7、坦克大战游戏大战
游戏说明:
说明文档
目的:
好玩;
涉及到java各个方面的技术(1.java面向对象编程,2.界面编程,3.绘图技术,4.多线程,5.文件i/o操作,6.数据库);
巩固旧知识,学习新知识
坦克游戏要求:
1.让敌人的坦克也能够发射子弹(4)
2.当我方坦克击中敌人坦克时,敌人的坦克就消失,如果能做出爆炸效果更好
(1)
3.让敌人的坦克也可以自由随机的上下左右移动
(2)
4.控制我方坦克和敌人的坦克在规定范围内移动(3)
爆炸效果:
先定义图片
定义所需的Bomb类
在击中敌人坦克时,把炸弹放入Vector向量
绘图
问题:
如何在坦克大战游戏里面增加如下功能:
1.记录玩家一共消灭了多少辆敌人坦克?
2.能够存盘退出游戏,下次打开游戏时,可以恢复到上次退出的状态,接着玩游戏,比如暴风影院就有接着上次退出的地方继续播放的功能。
文件、数据库
第三章java数据库编程
3.1、数据库的基本介绍
关于数据库的例子:
银行网站、游戏积分、qq聊天记录
文件保存数据存在的几个缺点:
1.文件的安全性问题
2.文件不利于查询和对数据的管理
3.文件不利于存放海量数据
4.文件在程序中控制不方便
数据库是衡量一个程序员水平的重要指标。
数据库是“按照数据结构来组织,存储和管理数据的仓库”
经典:
啤酒搭着尿布卖。
(海量数据挖掘)
数据库的基本结构:
1.物理数据层:
它是数据的最内层,是物理存储设备上实际存储的数据的集合。
2.概念数据层:
它是数据的中间一层,是数据库的整体逻辑表示,指出了每个数据的逻辑定义及数据间的逻辑联系,是存储记录的集合。
3.逻辑数据层:
它是用户所看到和使用的数据库,表示已一个或一些特定用户使用的数据集合,及逻辑记录的集合。
数据库不同层次之间的联系是通过映射进行转换的。
数据库的基本特点:
1.实现数据共享
2.减少数据的冗余度(rong)
3.数据实现了集中控制
4.数据一致性和可维护性,以确保数据的安全性和可靠性
5.故障恢复
目前主流数据:
一流公司做标准,二流公司做服
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 笔记