04747 Java语言程序设计 ☑️
语法
- 换行/n 、回车/r 、制表 /t
- 方法签名包含 方法名、参数列表、返回类型(不是返回值)
- 静态成员变量是类的所有对象共享的
- switch 不能跟 long 数据类型
- 45&20 的值:转成二进制计算 101101&010100(有 0 则 0)= 100 转成 10 进制 = 4
- 73>>1 的值:转成二进制 1001001,右移 1 位得到 100100 转成 10 进制 = 36
- 25<<1 的值:转成二进制 11001
- 关键字:goto
- 不是关键字:false、main
- 单目运算符:+、-、++、--
基本数据类型
- 将字符串分解成可独立使用的单词 java.util.StringTokenizer
- substring(x,y)字符串截取,只有一个参数表示截取到最后,第二个参数表示截取到 y,不包含 y
- concat() 字符串连接
- boolean(1 位)< byte(1 字节 8 位)<char(2 字节 16 位)<short(2 字节 16 位)<int(4 字节 32 位)<float(4 字节 32 位)<long(8 字节 64 位)<double(8 字节 64 位)
面向对象
- 包装类不能被实例化的 (不能通过new 创建)
- 调用方法使用值传递的方式,形参和实参指向同一地址
- 一个类中允许多个方法使用同一个方法名:方法重载
- 类方法不能直接引用实例变量
- java 的派生机制,子类和父类之间是 is a 的关系,而不是 has a 的关系
- 调用方法使用值传递将基本数据类型的实参传给形参是将实参的值复制给形参
- 直接定义在类的变量:实例变量、定义在类并且通过 static 修饰是类变量、方法内的变量都是局部变量
- 多态是父类定义的属性和方法被子类继承之后可以具有不同的数据类型或表现出不同的行为。
- 面向对象语言概念:抽象、对象、消息、类、继承、多态、动态联编。
- 子类调用父类构造的方法:
集合
- Vector类实例当中存的是类型
IO流
- File对象通过方法获取文件长度
- File 对象只能用来命名文件、查询文件属性和处理目录,不提供读写操作
- 程序需按行输入输出文件的字符流:需要使用缓冲式 BufferedReader、BufferedWriter
- 大多数采用缓冲式输入数据文件的主要目的:用 readLine()方法按行输入字符
- 抽象类 Reader、Writer 处理的是(带了 Stream 的才是字节流)
- new File()再通过
getpath得到的路径 \my\git\a.java(反斜杠、不带磁盘名称) - 不能用于文件随机访问 readInteger(readChar、readLong、writeChars)
- int read(byte []b, int off, int len)的返回值是读取的字节数
- 一次从文件中读一行数据使用 BufferedReader 的 readLine()方法
- IO 包的四个基本抽象类:
异常处理
- 在java当中必须处理的异常
- 受检异常包括:IO、SQL、ClassNotFound、FileNotFound、NoSuchMethod
- 运行时异常:NullPoint、ClassCase(类强制转换)、IndexOutOfBounds、Arithmetic(数字运算)
多线程
- 由挂起状态->可运行状态的方法
- 从阻塞状态->就绪状态 :自动恢复 、resume()、notify 或 notifyAll 通知恢复
- 强制终止线程的方法
- 对象互斥锁 是对的操作
- 线程优先级级别最低的数字
- Thread 中 3 个线程优先级静态量
NORM_PRIOPLTY、MAX_PRIOPLTY、MIN_PRIOPLTY(普通、最大、最小) - Runnable:先实现接口。在类内实现run()方法;并在类内声明线程对象,在init(),方法或start()方法中创建新线程,并在start() 方法中启动新线程
- 线程死亡的原因:执行完毕、遇到异常
- 线程的组成部分(执行的代码、处理的数据、虚拟 CPU)不属于(入口和出口)
网络
- URL 对象 url 获取到 URLConnection 对象,url 需要调用 openConnection()方法
InteAddress类- getByName
得到InteAddress实例 - getHostName 获取域名
- getHostAddress 获取 IP
- getLocalHost 本地域名
- getByName
数据库
- Connection 类是用来表示与数据库的连接
- Statement 类是用来创建 SQL 语句对象
- DriverManger 类是用来处理驱动程序加载和建立数据库连接
GUI 图形化
- JComboBox 构造:(Object [] items)创建可选组合框
- 创建自定义图形,由 JPanel 派生一个新类,重写父类 方法
- paint 方法的参数类型是 Graphics
- JLabel 上既可以有文本也可以有图标
- JDialog 对象能够指定布局管理器
- JFrame 的子类能用来创建框架窗口
- AudioClip 用来播放音频
- 只有
Jpanel及其子类 JApplet 才能直接把组件加入进来(默认布局是 FlowLayout) - 程序的子窗口设定一个字符串 s 指定的名字,采用 super(s)
- FlowLayout 布局组件排列顺序 从左到右
- 能直接添加组件的 Swing 容器:JPanel 及其子类 JApplet
- 菜单(三级定义)菜单条->菜单->菜单项
- 菜单栏构造方法的名字:JMenuBar
- 设置异或绘图模式的方法:setXORMode()
- MouseListener 接口只能处理的鼠标事件:按下、释放、点击、进入、退出()
- mousePressed
- mouseReleased
- mouseEntered
- mouseExited
- mouseClicked
- 顶层容器:
JFream、JApplet、JDialog、JWindow - 文字字型三要素:字体、风格、字号
- 创建文字的构造 Font(string name, int style, int size) 宋体 加粗 12
- java.awt.event 包包含:源对象、监视器对象、事件对象
- JFileChoose 来实现打开和保存文件对话框,用户通过文件对话框不能
- getSelectedFile 获取文件对象(顺序就是这三个的排序,先获得文件对象)
- getName 获取文件名称
- getPath 路径
- 文件对话框按下关闭按钮,返回的整数值
- JFileChooser.CANCEL_OPTION:按下撤销按钮
- JFileChooser.APPROVE_OPTION:按下保存、打开按钮
- JFileChooser.ERROR_OPTION:异常
- GraphicsD 用来填充效果的方法 setPaint
setStroke线的粗细setTranform变化setClip裁剪
- Graphics2D 类中绘制线段的类 Line2D
2024-10
单选题
1. Java 程序HelloWorld.java编译后的类文件名是
A. HelloWorld.java
B. HelloWorld.class
C. Helloworld.java
D. Helloworld.class
2. 下列属于 Java语言的关键字是
A. name
B. long
C. age
D. school
3. 设i的初值为10,则执行完j=++i;后,i和j的值分别为
A. 10, 10
B. 10, 11
C. 11, 10
D. 11, 11
4. 下列关于实例方法和静态方法的叙述中,正确的是
A. 类中的静态方法可以直接调用实例方法
B. 类中的静态方法不可以互相调用
C. 类中的实例方法不可以互相调用
D. 类中的实例方法可以调用静态方法
5. 下列Java程序代码中,能正确创建数组的是
A. int[]array={1, 2, 3, 4, 5, 6};
B. int array[]=new array (6);
C. int array[]; array[]=new int[6];
D. int[6]=array{1, 2, 3, 4, 5, 6};
6. 有如下类和对象的定义
class Parent{}
class Child1 extends Parent{}
class Child2 extends Parent{}
Parent p=new Parent();
Child1 s=new Child1 ();
Child2 d=new Child2 ();
当执行语句s=(Child1)d;时,结果是
A. 执行时完全正确
B. 编译时正确,但执行时出错
C. 执行时不确定
D. 编译时出错
7. 下列Java程序代码中,不能创建File对象的是
A. File myFile; myFile = new File(" hello, world! ")
B. File myFile = new File(" / ", " hello, world! ")
C. File myDir = new File(myDir, " hello, world! ")
D. File myDir = new File(" / "); File myFile = new File(myDir, " hello, world! ")
8. 在顶层容器中,带有标题行和控制按钮的独立窗口,创建应用程序时需要使用的是
A. JFrame
B. JApplet
C. JDialog
D. JWindow
9. 能够实现单行文本输入的文本组件是
A. 文本域
B. 文本区
C. 对话框
D. 菜单栏
10. 下列方法中,强制终止线程执行的方法是
A. start()
B. run()
C. yield()
D. isAlive()
填空题
11. java语言的解释器是
____
12. 一个float类型的运算数和一个double类型的运算数进行运算,结果的类型是
____
13. 与try语句配套使用的语句是
____
14. Java程序中,调用方法时,参数传送采用的机制是
____
15. 执行String str="123421"; String result=str.replace ("2", "6") ;后, result的值是
____
16. 接口上的所有变量都默认为是____属性
____
17. 用于读取字节流的抽象类是
____
18. 为JButton组件注册事件侦听程序,需要使用的方法是
____
19. 绘制一条从 (a,b) 到(c,d) 的直线,需要使用的方法是
____
20. 线程的创建除了继承Thread类以外,还能通过实现接口完成线程的创建,需要实现的接口为
____
简答题
21.什么是构造方法?什么是构造方法的重载?
(1) 构造方法是一类特殊的方法,有特殊的功能。构造方法的名字与类名相同,没有返回值,在创建对象实例时通过new运算符自动调用
(2) 同时为了便于创建实例,一个类可以有多个具有不同参数列表的构造方法,即构造方法可以重载。事实上,不论是系统提供的标准类,还是用户自定义的类,往往都含有多个构造方法
22. 在输入输出处理时,什么是对象的序列化?对象序列化的主要任务是什么?
(1)对象通过数值来描述自己的状态,记录对象也就是记录下这些数值。把对象转换为字节序列的过程称为对象的序列化
(2)序列化的主要任务是写出对象实例变量的数值。序列化是一种用来处理对象流的机制。序列化是为了解决在对对象流进行读写操作时所引|发的问题
23. 请写出if-else语句的语法格式,并且解释其语义
24. Java 标准包java.lang封装了 String 类和StringBuffer类,简述他们的含义及区别
(1) String类用于处理不变字符串
(2) String Buffer类用于处理可变字符串
(3)区别:String类的实例一旦被创建,内容不能改变,如需要改变内容并且操作字符串,需要创建StringBuffer类的实例
25. 线程一共有哪几种状态?
新建(New)、可运行状态(Runnable)、死亡(Dead)、阻塞(Blocked)
程序分析 & 程序设计
这个就看平时码的够不够了
倒序打印99乘法表
java
for(int i=9;i>=1;i--){
for(int j=1;j<=i;j++){
System.out.print(i+"*"+j+"="+i*j);
}
System.out.println();
}