Java语言程序设计
2024-03-23 09:21:47 1 举报
AI智能生成
登录查看完整内容
java 入门
作者其他创作
大纲/内容
多线程
动态执行兼有丰富的API 文档及类库
java 语言特点
将java代码编译成字节码
java 编译器
javac d:\\java\\HelloWorld.java
javac 选项 源文件名
javac
执行已经转换成字节码的java程序
java 解释器
java d:\\java\\HelloWorld
java
用来调试java程序
java调试器
jdb
将类文件还原回方法和变量
反编译
javap
创建html文件
文档生成器
javadoc
常用命令
java application
java 应用程序
java小程序
java applet
java 小应用程序
java程序分类
含有 一个main() 称为主函数和主方法
扩展名为.java 编译后的字节码文件 扩展名为 .class 需要由JVM 载入并解释执行
代码编辑器
编译器
调试器
用户图形界面工具.
包括
集成开发环境的缩写
IDE
java程序由类构成
优点
面向对象分析 OOA
面向对象设计 OOD
状态
属性
特性
概念
封装
继承
多态
采用三大技术
面向对象程序设计 OOP
面向对象方法学
抽象
对象
类
类型层次
多态性
主要概念
面向对象技术
空白
//
/* */
@param 表示参数
@return 标志返回值
@throws 表示方法抛出的异常
@
一般的 在公有类定义 或公有类方法的前面使用这一的注释.
/**文档注释*/
注释
变量名
方法名
类名
接口名
可以用作
标志符
Unicode码
是java程序的最小执行单位
语句
各语句之间 以 ; 进行分隔
;
{ }
组成单元
类名或接口名
常量名
命名风格
编程风格
java程序特点
break
do
instanceof
native
strictfp
synchronized
transient
volatile
已使用
cast
const
future
generic
goto
inner
operator
outer
rest
var
未使用
java 关键字
1章 java 概述
整数类型
MAX_VALUE
MIN_VALUE
正无穷大
POSITIVE_INFINITY
负无穷大
NEGATIVE_INFINITY
浮点数类型
char
字符类型
boolean
布尔类型
基本数据类型
类类型
数组
接口类型
复合数据类型
string
数据类型分类
只有简单数据类型 和 String 类型才能有相应的常量
常量
变量在使用之前必须初始化
自动变量
局部变量
临时变量
栈变量
在方法内
类的成员变量
在类中定义
声明变量的地方
指可访问到改变量的代码范围
变量的作用域
变量
经过初始化的变量 才能成为 操作数
byte=0
short=0
int=0
long=0L
float=0.0f
double=0.0
char=\\u0000 (null)
boolean=false
引用类型=null
操作数默认值
操作数
Math.sin
Math.cos
Math.round
开平方
Math.sqrt
计算乘方
Math.pow
求最大值
求最小值
随机一个 0.0-1.0 之间的一个随机数
Math.random
常用数学函数
5%-3的结果是2,-5%-3的结果是-2,-5%3的结果是-2。
常用运算符
可用于任何数据类型
关系运算符
逻辑与运算,也是只有两个操作数都是true,结果才是true
&&
逻辑或运算,也是只有两个操作数都是false,结果才是false
||
逻辑非运算,对操作数取反。
!
逻辑运算符
位非运算符:如果位为0,结果是1,如果位为1,结果是0.
~
位与运算符,只有两个操作数都是true,结果才是true。
int xValue = 27,yVar = 28; xValue = xValue & 4; yVar = 4 & yVar; 先都转化为二进制再进行与运算。最终结果:xValue=0;yVar=4。
&
位或运算符,只有两个操作数都是false,结果才是false。
|
位异或运算:两个数转为二进制,然后从高位开始比较,如果相同则为0,不相同则为1
^
右移操作示例:128 >>1\t\t//得到 64256 >>4\t\t//得到 16-256>>4\t\t//得到-160xa2 >>>2\t\t//得到 40(byte)0xa2 > > 2\t//得到-24(byte)0xa2 >>>2\t//得到 1073741800(byte) 0x80 > > 2\t//得到-32
表示右移,如果该数为正,则高位补0,若为负数,则高位补1
>>
负数:r = -20 >> 2 -20 的二进制原码 :1001 0100 -20 的二进制反码 :1110 1011 -20 的二进制补码 :1110 1100 右移两位后的补码:1111 1011 反码:1111 1010 原码:1000 0101 结果:r = -5
左移时不管正负,低位补0
<<
>>>
位运算符
例如: x = x * 3等价于x * =3
扩展运算符
? :
条件运算符
people.name
.
点运算符
实例运算符
new 运算符
[ ]
数组下标运算符
正数的二进制
原码
原码01交替
反码
反码+1 =负数
补码
负数 二进制 求法
正数二进制
二进制
运算符
[]
参数
后缀加1
++
后缀减1
--
1
前缀+1
后缀-1
求正
+
求负
-
位运算符非
逻辑非
2
对象实例
new
类型转换
(类型)
3
*
/
取模
%
4
加
字符串链接
减
5
1 << 32=1
左移
1 >>32=1
右移
1 >> >32=1
无符号右移
6
<
<=
>
>=
7
相等
==
不等于
!=
8
按位与
9
按位异或
10
11
逻辑与
12
逻辑或
13
?:
14
运算符优先次序
转换的原则是 位数少的可以转换为 位数多的类型
自动类型转换
强制类型转换
类型提升
表达式
2章 数据和表达式
类文件结构
包名通常采用全部的小写字母
java程序结构
赋值语句
表达式语句
Scanner scan=new Scanner(System.in)
读入下一个输入对象
can.next()
读入当前行的所有输入对象.只到行尾然后作为字符串返回
can.nextLin()
switch 条件表达式是 只能是 int 或者char
switch
Java提供的格式化输出功能:(1)NumberFormat类提供对数值进行格式化操作的一般功能。不能使用new运算符实例化一个NumberFormat对象,只能直接使用类名调用一个特殊的静态方法来得到一个对象。NumberFormat类中常用的方法如下:getlnstance():返回当前默认语言环境的默认数值格式。getCurrencyInstance():返回当前默认语言环境的通用格式。getNumberInstance():返回当前默认语言环境的通用数值格式。getPercentInstance():返回当前默认语言环境的百分比格式。setMaximumFractionDigits(int):设置数值的小数部分允许的最大位数。setMaximumlntegerDigits(int):设置数值的整数部分允许的最大位数。setMinimumFractionDigits(int):设置数值的小数部分允许的最小位数。setMinimumlntegerDigits(int):设置数值的整数部分允许的最小位数。
NumberFormat
ClassNotFoundException
exception
不需要处理
error
throwable
方法内处理
采用 throw 告诉方法的调用者来处理
或者在方法上 采用throws 来指明 异常类型
异常处理
异常
异同点
3章 流程控制语句
和类名相同
构造方法可以重载
构造方法不可以继承
构造方法
类变量
静态变量
类方法
静态方法
静态成员
java 采用 值传递
参数传递
方法名称
参数的个数
参数的顺序
参数的类型
参数列表
方法签名
方法重载
所有的包装类型 定义在 java.long包中
将基本类型自动装箱成对应的 包装类的过程 称为 自动装箱
自动装箱
将包装类型 自动转换为 基本类型的过程 称为 自动拆箱
自动拆箱
包装类
4章 类和对象
类型 数组名[]
类型[] 数组名
一维数组声明
类型 数组名 [][]
类型 [] [] 数组名
类型 [] 数组名 []
多维数组声明
数组声明
静态初始化
动态初始化
数组的初始化
先创建数组本身
分别创建各数组元素
类类型数组 空间分配步骤
0 ~ length-1
数组的小标范围
System.arraycopy()
数组复制
数组
处理不变字符串
String
处理可变字符串
StringBuffer
字符串类型
String类和StringBuffer类中共有的常用方法length():返回字符串的长度,即字符个数。charAt( int index):返回字符串中index位置的字符。subString(int beginlndex):截取当前字符串中从beginlndex开始到末尾的子串。
共用常用方法
replace ( char oldChar,char newChar ):将当前字符串中出现的所有oldChar转换为newChar。toLowerCase():将当前字符串中所有字符转换为小写形式。toUpperCaSe():将当前字符串中所有字符转换为大写形式。concat( String str):将str连接在当前字符串的尾部。startsWith(String prefix):测试prefix是否是当前字符串的前缀。trim():去掉字符串前面及后面的空白。valueOf( type value):将type类型的参数value转换为字符串形式。String类型字符串的连接还可以使用运算符+来实现。String 类中比较方法:compareTo( )、equals( )、equalsIgnoreCase( )、regionMatched( )等。
String 常用函数
StringBuffer常用函数
常用函数
字符串
首先是 可变数组
保存的数组元素类型 可以不一样
特点
capacityIncrement
元素的数量
elementCount
元素存储的数组缓冲区.
ObjectElementData[]
成员变量
成员方法
Vector
5章 数组和字符串
子类和父类是 is a 的关系
采用 extends 进行继承
类 只能采用 单继承
接口 可以使用 多继承
子类不能继承父类的构造方法
getClass
toString()
equals(Object obj)
方法
判断是否是 \"同一\"
==
判断对象是否相等
equals
比较相等
Object
发生在子类和父类之间
覆盖方法的访问范围不能小于原方法
覆盖方法的异常不能比原方法更多
重写 override
发生在同一个类中
重载 overload
接口中也可以有构造方法
接口
抽象类
动态绑定
静态绑定
绑定
表示 终极
实际上会成为一个常量
修饰变量
final
6章 继承 和多态
read()
read(byte [] b)
close
available()
skip ()
mark
markSuported
reset
inputStream
write
flush
outputStream
用于字节传输 (二进制)
InputStreamReader
OutputStreamReader
中介
在字节流和字符流 之间起到中介作用
reader
writer
fileInputStream
fileOutputStream
文件数据流
不支持 mark() 和 reset()
BufferedInputStream
BufferedOutputStream
缓冲区数据流 (过滤器数据流)
readByte
readLong
readDouble
readBoolean
readUTF
readInt
readFloat
readShort
readChart
DataInputStream
writeByte
writeLong
writeDouble
writeBoolean
writeUTF
writeInt
writeFloat
writeShort
writeChar
DataOutputStream
数据数据流
通过数据流来读写 java基本数据类型
readObject
ObjectInputStream
writeObject
ObjectOutputStream
对象流
java.io
序列化
把字节序列恢复为对象的过程
反序列化
必须实现 Serializable
getName
getPath
getAbsolutePath
getParent
renameTo(File newName)
常用名字
exists
canWrite
canRead
isFile
isDirectory
isAbsolute
文件测定
lastModified
length
delete
getFilePointer
seek
文件信息
mkdir
mkdirs
list
目录工具
RandomAccessFile
file
7章 输入输出流
包含本地代码
重量级
AWT
父主题
Swing
组件技术
如果 一个区域内有 重量级 和 轻量级 组件 则重量级组件总是显示在最上面
基础组件
setBounds
setSize
setBackground
setVisible
调整框架的大小,以适合其子组件的首选大小和布局
pack
setTitle
返回此框架窗体的内容窗格对象
getContentPane
setLayout
JFrame
JApplet
JDialog
JWindow
顶层容器
Jpanel
JscrollPanel
一般容器
容器
FlowLayout
BorderLayout
GridLayout
CardLayout
将容器中的组件按水平方向排成一行 或者 按垂直方向排成一列
BoxLayout
布局管理器
ActionEvent
当改变滚动条滑块位置时
AdjustmentEvent
组件移动
componentMoved
组件影藏
componentHidden
组件缩放时
componentResized
组件显示时
componentShown
ComponentEvent
组件添加
componentAdded
组件移除
comonentRemoved
ContainerEvent
组件获得焦点
focusGained
组件失去焦点时
focusLost
FocusEvent
ItemStaleChanged
ItemEvent
键按下
KeyPressed
键释放
KeyReleased
击键时
KeyTyped
KeyEvent
鼠标按下
mousePressed
鼠标释放
mouseReleased
鼠标进入
mouseEntered
鼠标离开
mouseExiled
单击鼠标
mouseClicked
MouseButtonEvent
鼠标拖拽
MouseGragged
鼠标移动
mouseMoved
MouseMotionEvent
文本内容修改时
textValueChange
TextEvent
窗口关闭
windowClosing
窗口打开
windowOpened
窗口最小化
windowIconified
窗口最小化还原
windowDeiconified
窗口关闭后
windowClosed
窗口激活
windowAclivated
窗口失去焦点
windowDeactivated
WindowEvent
事件
设置前景色
setForeground
设置背景色
设置颜色
drawChars
drawString
drawBytes
显示字体
字体
样式
字号
字体三要素
setPaimMode
正常模式
setXORMode
异或模式
模式
弧线
drawArc
直线
drawLine
椭圆
drawOval
多边形
drawPolygon
绘制折线
drawPolyline
矩形
drawRect
圆角矩形
drawRoundRect
绘制指定矩形的3-d突出显示边框
draw3DRect
画功能
填充背景色
fillArc
fillOval
fillPolygon
fillRect
fillRoundRect
Graphics
stroke
控制填充效果
paint
transelate(double dx,double dy):将图形在 x 轴方向平移 dx 像素。scale (double sx,double sy):图形在x轴方向缩放sx倍,纵向缩放sy倍。rotate (double arc,double X,double y):图形以点(X,y)为轴点,旋转 arc 弧度。
transform
剪切效果
clip
设置图形重叠的区域
composit
Graphics2D
图形
组件分类
8章 图形界面设计
可编辑
默认不可编辑
不可编辑
setEditable(true)
JComboBox( ):创建一个没有任何可选项的默认组合框。JComboBox(Object [ ] items): 根据 Object 数组创建组合框,Object数组的元素即为组合框中的可选项
void addItem(Object anObject):在末尾位置添加新的可选项。Object getItemAt(int index):返回指定索引序号index处的可选项。 int getItemCount( ):返回列表中的项数。void insertItemAt(Object anObject,int index):在index指定的位置添加新的可选项 anObject。int getSelectedIndex():返回列表中与给定项匹配的第一个选项的索引序号。Object getSelectedItem():返回当前所选项。void removeAllItems():删除所有可选项。void removeItem(Object anObject):删除由anObject指定的可选项。void removeItemAt(int anIndex):删除由anlndex指定处的可选项。
常用方法
JComboBox
组合框
可供用户选择的一系列可选项
构造方法JList( ):构造一个空列表。JList(Object [ ] listData): 构造一个列表,列表的可选项由对象数组listData指定。JList( Vector <?> listData): 构造一个列表,使其显示指定Vector中的元素。
使用JList中定义的setSelectionMode (int selectionMode)设置,其中int型参数selectionMode可以是下列常量:ListSelectionModel.SINGLE_SELECTION:只能进行单项选择。ListSelectionModeL.SINGLE_INTERVAL_SELECTION:可多项选择,但多个选项必须是连续的。ListSelectionModel.MULTIPLE_INTERVAL_SELECTION:可多项选择,多个选项可以是间断的,这是选择模式的默认值
单选和多选
public int getSelectedIndex( ):返回所选项第一次出现的索引;如果没有所选项,则返回-1。public Object getSelectedValue( ):返回所选的第一个值,如果选择为空,则返回null。public void setVisibleRowCount(int visibleRowCount):设置不使用滚动条可以在列表中显示的首选行数。setModel (ListModel model):设置新的ListModel
JList
列表
文本域
JTextField
void append( String str): 将指定文本str追加到文本区。void insert( String str,int pos): 将指定文本str插入到文本区的特定位置pos处。void replaceRange( String str,int start,int end): 用指定文本str替换文本区中从起始位置start到结尾位置end的内容。
文本区
JTextArea
口令输入域
JPasswordField
组件
String getSelectedText( ):从文本组件中提取被选中的文本内容。String getText( ):从文本组件中提取所有文本内容。String getText(int offs,int len):从文本组件中提取指定范围的文本内容。void select(int selectionStart,int selectionEnd): 在文本组件中选中指定的起始和结束位置之间的文本内容。void selectAll( ):在文本组件中选中所有文本内容。void SetEditable(boolean b):设置为可编辑或不可编辑状态。void setText(String t):设置文本组件中的文本内容。
void setDocument(Document doc):设置文本组件的文档。void copy( ):复制选中的文本到剪贴板。void cut( ):剪切选中的文本到剪贴板。void paste( ):将剪贴板的内容粘贴到当前位置。boolean requestFocusInWindow( ):请求当前组件获得输入焦点
文本组件(JTextComponent)
可以放入
JMenuBar
setMnemonic (char mnemonic):为菜单设置快捷键。 setAccelerator (KeyStroke keystroke):为菜单项设置加速键。addSeparator()和insertSeparator( int index) 菜单间 加入 分割线
JMenuItem
复选框菜单项
JCheckBoxMenuItem
单选菜单项
JRadioButtonMenuItem
菜单项
菜单栏
showConfirmDialog确认对话框,显示问题,要求用户进行确认(yes/no/cancel)。showInputDialog输入对话框,提示用户进行输入。showMessageDialog信息对话框,显示信息,告知用户发生了什么情况。showOptionDialog选项对话框,显示选项,要求用户进行选择。
分类
int messageType:对话框所传递的信息类型。可以为以下常量:ERROR.MESSAGE(错误)INFORMATION.MESSAGE(消息)WARNING_MESSAGE(警告)QUESTION_MESSAGE(问题)PLAIN.MESSAGEint optionType:对话框上按钮的类型,可以为以下常量:DEFAULT_OPTIONYES_NO_OPTIONYES_NO_CANCEL_OPTIONOK_CANCEL_OPTION
对话框
JFileChooser( ): 构造一个指向用户默认目录的文件对话框。JFileChooser(File currentDirectory): 使用给定的File作为路径来构造一个文件对话框。JFileChooser(String currentDirectoryPath): 构造一个使用给定路径的文件对话框。
showOpenDialog ( Component parent):弹出一个“打开”文件对话框。showSaveDialog( Component parent):弹出一个“保存”文件对话框。Component型参数指定文件对话框的“父组件”。且决定了文件对话框的显示位置,如果该参数为null,则文件对话框显示在屏幕正中getSelectedFile( ) 获取用户选择的文件
JFileChooser
文件对话框
9章 Swing组件
同一进程上的所有线程共享进程的系统资源
线程之间的切换比进程 切换要快
虚拟CPU
执行的代码
处理的数据
组成
新建
可运行状态
runnable
run 方法执行完
死亡
dead
允许低优先级的进程运行
sleep
wait
只给同优先级的进程以运行机会
yield
阻塞
bocked
void interrupt( ):向一个线程发送一个中断请求,同时把这个线程的“interrupted”状态置为true。若该线程处于“blocked”状态,会抛出InterruptedException异常。 static boolean interrupted ( ):检测当前线程是否已被中断,并重置状态“ interrupted” 值。即如果连续两次调用该方法,则第二次调用将返回false。 boolean isInterrupted( ):检测当前线程是否已被中断,不改变状态“interrupted”值
中断
继承Thread
实现Runnable接口
创建方法
start( ):启动线程对象,让线程从新建状态转为就绪状态。run( ):用来定义线程对象被调度之后所执行的操作,用户必须重写run( )方法。yield( ):强制终止线程的执行。isAlive( ):测试当前线程是否在活动。sleep(int millsecond): 使线程休眠一段时间,时间长短由millsecond决定,单位为ms。void wait( ):使线程处于等待状态。
优先级高的先执行,优先级低的后执行。每个线程创建时都会被自动分配一个优先级,默认时,继承其父类的优先级。任务紧急的线程,其优先级较高。同优先级的线程按“先进先出”的调度原则
void setPriority(int newPriority):重置线程优先级。int getPriority( ):获得当前线程的优先级。static void yield( ):暂停当前正在执行的线程,即让当前线程放弃执行权
MAX_PRIORITY: 最高优先级,值为10。MIN_PRIORITY: 最低优先级,值为1。N0RM_PRI0RITY: 默认优先级,值为5。
线程优先级
notify
notifyAll
interrupt
唤醒
线程等待
唤醒所有等待的线程
join
挂起线程
使用它来实现不同线程对共享数据的同步操作
来声明一个共享数据
来声明一个 同步代码块 或者方法
线程互斥
线程
10章 多线程
java 语言程序设计
0 条评论
回复 删除
下一页