Java程序设计以及使用指导实验笔记,原创文章,转载请注明出处(2021年12月13日注)
笔记配套源码:https://gitee.com/xiaoxingbobo-personal/java-domehttps://gitee.com/xiaoxingbobo-personal/java-dome
目录
实验笔记
第一章 Java语言概述
一、实验操作
二、遇到的问题及解决方法
三、小结
第二章 Java编程基础
一、实验操作
二、遇到的问题及解决方法
三、小结
第三章 类与对象
一、实验操作
二、遇到的问题及解决方法
三、小结
第四章 继承与多态性
一、实验操作
二、遇到的问题及解决办法
三、小结
第五章 异常处理
一、实验操作
二、遇到的问题及解决方法
三、小结
第六章 Java常用类
一、实验操作
二、遇到的问题及解决办法
三、小结
第七章 泛型与集合
一、实验操作
二、遇到的问题及解决办法
三、小结
第八章 多线程
一、实验操作
二、遇到的问题及解决办法
三、小结
第九章 Java I/O
一、实验操作
二、遇到的问题及解决办法
三、小结
第十章 图形用户界面
一、实验操作
二、遇到的问题及解决办法
三、小结
第十一章 网络编程
一、实验操作
二、遇到的问题及解决办法
三、小结
Java扩展 JDBC连接MySql数据库
一、实验操作
二、遇到的问题及解决办法
三、小结
1、问题:环境变量配置不正确
解决方法:环境变量必须要配置到bin目录下
2、问题:Scanner无法实例化
解决方法:导入Scanner包
3、创建了Scanner对象时,忘记传入参数System.in对象,导致报错
1、学习了环境变量的配置,eclipse的安装,以及Scanner类接收键盘输入,知道了jdk是Java的开发环境,jre是Java的运行环境,jdk中已经包含了jre不用单独安装,java是通过javac.exe这个程序进行编译Java源码为字节码,然后用java.exe在JVM虚拟机中运行程序。
2、掌握Java使用Random生成随机数,使用Scanner类接收键盘输入的数字,通过判断用户输入的数字是否比生成的随机数大还是小,实现了猜字游戏
3、System.Out.println()在控制台打印字符串
1、求水仙花数
2、使用双重for循环求素数
3、冒泡排序
4、输出九九乘法表
5、猴子吃桃子问题
6、switch case分支实现数字查询星期
7、测试i++与++i的区别
8、n个小孩围成一圈,顺序排号。每个从1-3开始报数,报到3退出圈外,最后剩下的是几号的算法。
1、求水仙花数时,怎么取到一个数字中的个,十,百,
解决方法:通过i%10取出个位,通过i/10%10,取出十位,通过1/100,取出百位
2、输出九九乘法表,隐藏多余第2个for的上届时上第一个for循环的项
1、学习了Java数据类型,分为基本数据类型和应用数据类型,如下图:
2、java中的for-each语法(与C#语言有所区别):
String[] strArray = {"张三", "李四"};
for (String item : strArray) {
System.out.println(item);
}
int ar[][] = new int[][]{
new int[]{1, 2}
};
1、调试子类继承父类,重写父类方法,使子类也拥有父类的方法,也可以对父类的方法进行扩展。
2、静态类,抽象类的实现重写
3、银行信用卡的存取操作案例
4、统计一个字符串中某个字符出现的次数
5、值传递和引用传递
1、子类继承父类的时候,给属性赋值报错。
2、当父类中存在有参构造函数时,必须创建无参数构造函数,否则子类在继承时报错
解决方法:给父类的属性添加getter和setter方法,然后及可以通过“<属性名>.get<属性名>”进行获取值,赋值通过“<属性名>.set<属性名>”进行赋值
1、子类继承父类的属性和方法
2、重写父类的普通方法,重写抽象方法以及实现接口
3、构建重载方法,实现java面向对象的多态的特性
4、Java实现简单工厂设计模式
暂无
1、子类通过extends关键字继承父类,继承父类后通过super关键字获取到父类,通过implement实现接口,接口也是特殊的抽象类
2、子类重写父类方法使用@Override关键字,子类不能重写父类的静态方法
3、使用final关键字的属性为常量,是不可以修改的
4、Java包装类,包装类把java基本数据类型包装成对象,对象都可以赋与null值。
5、instanceof()用于判断某对象是否是某特定类型或者子类,用法instanceof()
6、工厂模式隐藏对象创建的复杂性,实现面像接口或者抽象类进行重写或者扩展。
1、判断字符长度是否超过20,超过则报StringTooLongException异常
2、编写自定义异常类
3、先进先出队列,栈空栈满异常
暂无
1、Java封装了大量的异常处理类,常见异常类:IOException(I/O操作异常类),IllegalAccessException(对类访问被拒绝),FileNotFoundException(不能找到文件)
2、使用try(此处是被包裹的资源)包裹资源,可实现资源用完自动关闭,比如数据流,数据库的连接等都可以通过try()包裹自动关闭资源
3、自定义异常类通过继承Exception类即可,主动触发异常通过throw new 自定义异常的类名()触发自定义异常
1、使用LinkedList模拟队列和栈,使用往队列中添加数据,再取出数据,了解队列的原理;
2.Java读取和创建properties文件,保存程序的一些配置文件;
3、设计BaseDao
4、使用Map、Set实现通讯录(增删改查)
暂无
1、泛型提高了java数据类型的安全,提高了代码复用性。
2、使用Properties对象实现配置文件的读取和写入功能,使用outputStream读入配置流,使用FileInputStream写入配置文件;
3、泛型的上限和下限:泛型通过 extends继承父类来设置上限,super设置下限,该功能用于编写基类有教大帮助。
4、泛型通配符:?,用法Point>,用于表示接收任何泛型
4、区别List、Set、Map:List列表,内容有序排列,Set列表,唯一区别于List的是,不能存在重复值,且是无序,无法通过下标访问元素,Map键值对,以Key-Value的方式进行存储。
暂无
1、读取记事本内容,再输出到记事本文件
2、修改文件扩展名,重命名,复制,删除操作
3、通讯录程序
4、使用Scanner类读取文件
1、写出记事本文件内容的时候,乱码
解决办法:设置写出编码"UTF-8"
1、OutputStream类的继承层次结构
1、构建Frame窗体,实现登录界面和信息查看,修改的窗体,以及单机事件等。
2、使用Toolkit获取屏幕尺寸,实现窗体居中
3、JFrame常用组件的创建
4、IntelliJ IDEA安装JFormDesigner插件,实现Java的可视化编写窗体程序。
1、流布局中,组件怎么实现垂直排列?
解决办法:查询资料后,得知Box.createVerticalBox()可创建一垂直布局容器。
解决办法:绑定为AcitonListener中的actionPerformed事件
1、面板类JPanel,中间容器,与布局管理配合使用,可以实现流布局和网格布局
2、使用getContentPane获取当前JFrame的JPanel
3、组件事件的绑定,主要有2种方式,实现 ActionListener接口和创建事件适配器类,在组件的事件属性里面直接创建事件适配器类均可以实现组件的事件绑定。
1、InetAddress类获取域名解析的IP地址,已经获取本机IP地址
2、基于TCP协议的Socket类和ServerSocket类实现及时通讯,结合第10章内容,仿QQ聊天程序。
3、基于UDP协议的DatagramSocket搭建客户端和服务端,以流的传输方式实现聊天程序
4、基于UDP协议的DatagramSocket搭建客户端和服务端,以DatagramPacket数据包传输实现聊天窗体程序
1、报错:端口被占用,切换端口即可
1、URL类读取网页资源
3、Socket通讯编程5步骤:
(1)客户端创建ServerSocket对象,调用accept()方法监听
(2)在客户端创建Socket对象连接服务器
(3)建立连接后,客户端和服务器端都打开与对方相连的输入/输出流
(4)客户端和服务端关闭输入/输出流,与对方发送和接收数据
(5)客户端和服务端关闭输入/输出流和Socket连接
4、InetAddress解析域名所指向的服务器IP地址,以及本机IP地址
5、基于UDP的DatagrmSocket的类用于编写网络通讯类,如果只使用DatagramSocket,那个传输采用流的方式进行,也可以配合上DatagramPacket,则可以实现数据包的形式进行传输数据。这种基于UDP的协议传输是双向的长连接,这点区别于只是HTTP的一次连接。