下个星期要写Java项目了,蓝瘦香菇。。。。
一、Java的多线程
一个任务多个事情要做就是用多线程
创造两个线程对象
PrinterRumble pr1 = new printerRumble();//printerRumble是一个类名
PrinterRumble pr2 = new printerRumble();
Thread t1 = new Thread(pr1,"线程1");
Thread t2 = new Thread(pr1,"线程1");
t1.start();
t2.start();
设置线程的优先级
t1.setPriority(1);
t2.setPriority(10);
休眠(sleep)时间不能放在锁中,这时候要是有人问一句锁是什么,很无奈我也不知道(尴尬了。。)
线程同步
多个线程共享一个资源的时候,可能会引起冲突,所以就需要引入同步机制,就是各线程要有先来后到,通俗易懂点来说就是要排队。。。
同步关键字为synchronized,后面写的是共享的对象。
二、Java网络编程
网络我想大家都不陌生,所以一些计算机网络的基础知识我就不多啰嗦咯,至于网络编程就是用来实现不同计算机之间运行的程序可以进行数据交换啦。
先来了解一下TCP/IP
TCP/IP模型是一系列协议的总称,基本上是四层结构:应用层,传输层,网络层,链路层
网络通信三要素:IP地址,端口号和传输协议(主要是有两个协议TCP和UDP)
进行网络编程主要需要解决两个问题:
1、如何在网络中找到一台或者多台主机
可以依靠网络层的IP解决,即提供主机的IP地址找到主机
2、当通信双方成功连接后,如何进行可靠的数据传输
针对传输层进行编程,传输层主要是有两个协议TCP和UDP
使用Socket(套接字)编程
比如主机甲上A程序把数据写到Socket中,主机乙上B程序从Socket中读取这段数据,反过来也一样,若是B要往A写程序,那B就可以把数据写到Socket,A再从Socket中读取。
用一台计算机显示,那就在两个虚拟机里,如下
客户端
Scanner input = new Scanner(System.in);
int port = 8888;//端口号
try {
InetAddress client = InetAddress.getByName("localhost");//IP地址
Socket skt = new Socket(client, port);
System.out.print("请输入:");
String str = input.next();
OutputStream os = skt.getOutputStream();
byte[] buf = str.getBytes();
os.write(buf);
System.out.println("发送完毕!");
os.close();
skt.close();
} catch (Exception e) {
// TODO: handle exception
}
服务器端
int port = 8888; //端口号
try {
//1.创建服务端
ServerSocket ss = new ServerSocket(port);
//2.开启监听
System.out.println("开启监听...");
Socket skt = ss.accept();
//3.将接收到的数据进行显示
InputStream is = skt.getInputStream();
byte[] buf = new byte[1024];
int len = is.read(buf);
String str = new String(buf, 0, len);
System.out.println("接收到的数据:"+str);
//4.关闭服务器
is.close();
skt.close();
ss.close();
} catch (Exception e) {
// TODO: handle exception
}
反射
反射相关的类主要包括Class类,Constructor构造方法,Method方法,Field属性等等,除了Class外,其他类都位于java.lang.reflect包中。
具体怎么用我也还不是很懂,就不在这班门弄斧了。。。
三、JDBC数据库
JDBC简单来说就连接数据库,数据库的增删改查就不用多说了吧,不清楚的可以去看我的上一篇博客(调皮。。。)
使用JDBC实现对多种数据库的统一操作,所以需要JDBC驱动
JDBC的组成元素
JDBC API:提供Java应用程序与数据库操作的接口
DriverManager
JDBC驱动:纯Java驱动
基本步骤:
1、在Java中装入JDBC驱动
2、加载驱动
Connection con = DriverManager.getConnection(数据库连接字符串,数据库用户名,密码)
3、发送SQL语句并得到结果集。创建一个Statement借口的实例,并将SQL语句传递给它所连接的数据库。
用Statement的executeUpdate()方法执行SQL语句
PreparedStatement预编译对象
CallableStatement存储过程对象
引用数据库
String url = “jdbc:mysql://127.0.0.1:3306/db_music”;
固定值 : // 本机IP :默认端口/数据库名
四、设计模式
设计模式分为三种类型
1、创建模型:工厂模型属于创建模型的一种,就像生活中的工厂一样,顾客想要什么样的产品就写个类继承于这个工厂,不用修改什么,直接添加就行了
2、结构性模型:结构型就像是商场一样,每个商场的每一层卖的东西都基本上是一样的,都有着固定的模式。
3、行为型模型:就像是人对不同事物有着不同的反应
设计模式的原则
1、开闭模式:就是可以对代码进行扩展,但不能进行修改
2、里氏代换原则:有父类出现的地方,子类也一定可以出现,这是面向对象设计的基本原则职一。
3、依赖倒转原则:针对接口编程,例如在支付时可以跳转到支付接口。
4、合成复用原则:就是尽量多使用合成/聚合的方式,而不是用继承。
单例模式:没错,就是字面上的意思,一个父类只能实例化一个对象所以被称之为单例模式,是不是很好理解了(哈哈哈)
适配器模式:适配适配就是用一个接口把不兼容的两个东西匹配到一起,就像是吃饭用筷子吃一样,总不能手抓饭吧(当然,你若是想用手抓饭的话也是可以的)
观察者模式:多对一或者一对多的关系就是观察者模式
好了,就这样吧,今天补考成绩也出来了,擦边过,看来明天要去感谢老祖宗保佑了(哭笑不得)