3859-方同学-Java学科-复试 扫二维码继续学习 二维码时效为半小时

(0评价)
价格: 免费

异常机制

异常就是不正常的含义,在java语言中主要指程序执行中发生的不正常情况

java.lang.Throwable 类是java语言中错误Error和异常

其中Error类主要用于描述java虚拟机无法解决的严重错误,通常无法编码解决,如:jVM挂掉了等。

其中Exception类主要用于描述因编程错误或偶然外在因素导致的轻微错误,通常可以编码解决,如:0作为除数等;

 

异常,就是“不正常”的含义,在java语言中主要指程序执行中发生的不正常情况

 

java.lang.Throable类是Java语中错误Error和异常的超类

class Error

class Exception

其中Error类主要用于描述java虚拟机无法解 决的严重错误,通常无法编码解决,如:jvm挂掉了等

其中Exception类主要用于描述因编程或偶然外在因素导致的轻微错误,通常可以编码解决,如:0作为除数等

[展开全文]

基于TCP协议模型的框架实现

 

[展开全文]

基于TCP协议的编程模型

如何理解TCP协议的编程模型

服务器:Server

1、准备一个大插排

2、坐等客户上门

3、不断地充电

4、下班回家了

客户端:Client

1、取下充电器

2、不断地充电

3、取下充电器交钱走人

在大插排处,保持空闲状态,能够诱惹更多的用户

 

在C/S模式下客户向服务器发出服务请求,服务器接收请求后提供服务

例如:在一个酒店中,顾客找报务员点菜,服务员把点菜单通知厨师,厨师按点菜单做好菜后让服务员端给客户,这就是一种C/S工作方式。

如果把酒店看作一个系统,服务员就是客户端,厨师就是服务器。这种系统分工和协同工作的方式就是C/S的工作方式

客户端部分:为每个用户所专有的、负责执行前台功能

服务器部分:由多个用户共享的信息与功能,招待后台服务

 

 

 

 

 

 

[展开全文]

IP地址:绝大多数路由器的登录地址,主要配置用户名和密码以及mac过滤

 

IP地址是互联网中的唯一地址标识,本质上是32位二进制组成的整数,叫做IPv4,当然也有128位二进制组成的整数,叫做IPv6,16个字节。

目前主流的,还是IPv4

日常生活中采用点分十进制表示法来进行IP地址的描述,将每个字节的二进制转化为一个十进制整数,不同整数之间采用小数点隔开

点分十进制

特殊的地址:

本地回环地址 hostAddress :127.0.0.1 代表本机

主机名(hostName) :localhost

IP地址:可以定位到具体的某一台设备

端口号:可以定位到该设备中具体某一个进程

端口号本质上是16位二进制组成的整数,表示范围是:0~65535,其中0~1024之间的端口号通常被系统占用,建议编程从1025开始使用

特殊的端口:

HTTP:80

FTP:21

Oracle:1521

MySQL:3306

Tomcat :8080

网络编程需要提供:IP地址+端口号,组合在一起叫做网络套接字:Socket 

网络套接字:Socket

 

 

[展开全文]

相关的协议:

以前写的代码与本地计算机使用。网络编程,不仅在当前计算机的内部通信,与外部计算机通信

 

就像:与自己聊天,什么语言都无所谓

与外国人聊,就需要双方都听得懂的语言

 

协议;让计算机之间进行统一通信的规则;

 

什么叫协议:计算机在网络中实现通信就必须有一些约定或者规则,这种约定和规则就叫做通信协议

通信协议可以对速率、传输代码、代码结构、传输控制步骤、出错控制等制定统一的标准。

 

TCP协议:是一种面向连接的协议,类似于打电话

1、建立连接--->进行通信--->断开连接

2、在传输前采用“三次握手”方式

3、在通信的整个过程中全程保持连接、形成数据传输通道

4、保证了数据传输的可靠性和有序性

5、是一种全双工的字节流通信方式、可以进行大数据量的传输

6、传输完毕后需要释放已建立连接,发送数据的效率比较低

全双工,可以一边说一边听。

 

UDP协议:

用户数据报协议,是一种非面向连接的协议,类拟于写信

1、在通信的整个过程中不需要保持连接,其实是不需要建立连接

2、不保证数据传输的可靠性和有序性

3、是一种全双工的数据报通信方式,每个数据报的大小限制在64k内

4、发送数据完毕后无需释放资源、开销小,发送数据的效率比较高,速度快。

 

一个打电话,一个写信的之间的区别

1、TCP保证数据传输的可靠、有序、发送效率低

2、UDP发送的效率比较高

丢数据,能忍,用的UDP。

保证数据的绝对安全。

医疗方面的,军事方面的,用TCP

连接的时候:三次握手

断开的时候:四次挥手

 

 

[展开全文]

网络编程:基于物联网的通信编程

java写一个代码与其它的计算机通信

网络通讯软件

OSI Open System Interconnect ,即开放式系统互联。

五层模型:应用层、传输层、网络层、数据链路层、物理层

传输层:TCP/UDP

网络层:TCP/IP

七层模型:应用层:应用层、表示层、会话层

 

相同的顺序,逐层的包装;

机反的顺序,逐层的拆包;

 

当发送数据时,需要对发送的内容按照上述七层模型进行层层加包后发送出去

当接收数据时,需要对接收的内容,按照上述七层模型相反的次序层层拆包并显示出来

java官方才j

 

 

[展开全文]

当程序结果可知:当两个线程同时对同一个账户进行取款时,导致最终的账户余额不合理

 

引发原因:线程一执行取款时还没有来得及将取款后的余额写入后台,线程二就已经开始取款

 

解决方案:让线程一执行完毕取款操作后,再让线程二执行即可,将线程的并发操作改为串行操作

 

线程同步:是改并行为串行么???

开发中,不提倡使用。

 

实现方式:

在java语言中使用synchronized关键字来实现同步/对象锁机制从而保证线程执行的原子性,具体方式如下:

原子性:线程执行的单位是最小单元,不能再划分了。

要么不执行,要不执行完,不能打断

 

一个文件中就一个类,类名与文件名相同

Public修饰的公共类必须只有一个,与文件名相同。

 

[展开全文]

线程同步机制:把原来多线程的并发操作改成现在的串行操作

 

当两个人对同一个帐户取款时,

[展开全文]

匿名内部类的的复习

[展开全文]

判断是否为守护线程,设置线程为守护线程

守护线程,是为其它线程为提供服务的

到底是提供什么样的服务呢

 

主线程结束,子线程结束。则为守护线程

守护线程的价值在实例中,体会

 

[展开全文]

int getPriority() 优先级

[展开全文]

Thread类的常用的方法(重点)

 

static void yield(),效果并不明显。不测试

sleep(times)

static void sleep(times) 使当前线程从Running放弃处理器进入Block状态,休眠times毫秒,再返回到Runnalbe如果其他线程打断当前线程的Block(sleep),就会发生

[展开全文]

线程的编号和名称(熟悉)

线程的编号,相当于人的身份证号

线程的名称,相当于人的名称

 

没有setID,ID是线程的唯一编号,就好比,现实生活中,没有人改身份证号

Thread(String name)  在构造方法中也可以写上名称

 

 

[展开全文]

线程的生命周期:

创建:代码中的new对象,是创建线程的过程

 

新建状态:使用new关键字创建之后进入的状态,此时线程并没有开始执行

就绪状态:调用start方法后进入的状态,此时线程还是没有开始执行

运行状态:使用线程调度器调用该线程后进入的状态,此时线程开始执行,当线程的时间片执行完毕后任务没有完成时回到就绪状态

 

多线程的时间原理,就是在抢占CPU的时间片

消亡状态:当线程的任务执行完成后进入的状态,此时线程已经终止

阻塞状态:当线程执行的过程中发生了阻塞事件进入的状态,如:sleep方法

一旦线程进行阻塞状态:阻塞状态解除后进入就绪状态

[展开全文]

匿名内部类的方法

从代码量,继承Thread类的方式,更简单

需要复习匿名内部类的相关知识

 

[展开全文]

计算机的体系结构

 

JAVA语言

 

Java架构

[展开全文]

线程创建与启动方法

自定义类继承Thread类并重写run方法,然后创建该方法的对象调用

调用Start()方法

 

开多线程的目的是,同时执行多个类型

 

执行流程:

1、执行main方法的线程叫做主线程,执行run方法的线程叫做新线程/子线程

2、main方法是程序的入口,对于start方法之前的代码来说,由主线程执行一次,当start方法调用成功后线程个数由1个变成了2个,新启动的线程去执行run方法的代码,主线程继续向下执行,两个线程各自独立运行互不影响

当run方法执行完毕后子线程结束,当main方法执行完毕后主线程结束

两个线程执行没有明确的先后执行次序,由操作系统调度算法来决定

 

 

 

 

[展开全文]

线程的创建

java.lang.Thread 类代表线程,任何线程对象都是Thread类的实例

 

Thread类是线程的模板,封装了复杂的线程开启等操作,封装了操作系统的差异性

 

Thread() 使用无参的方式构造对象

Thread(Runnable target)根据参数指定的引用来构造对象,其中Runnable是个接口类型

接口的实现类

 

void start() 用于启动线程,java虚拟机会自动调用该线程的run方法

 

[展开全文]

如描述软件

垃圾清理,病毒的扫描

一个进程,中又分多个线程

注流的开发都是开发多线程技术,开多个任务

单核CPU

多进程也好,多线程也好,同时干很多活

 

进程是重量级的,也就是新建一个进程会消耗CPU和内存空间等系统资源,因此进程的数量比较局限

 

线程是轻量的,新建线程会共享所在进程的系统资源,因此目前主流的开发都是采用多线程的。

 

单核CPU,我来之后学习java,C,C++

CPU在每个线程中切换,多线程是采用时间片轮转法来保证多个线程的并发执行,所谓并发就是指宏观并行微观串行的机制

4核,8核

java中是多线ktg

 

 

[展开全文]

多表关系的案例

1、实体分析:旅游线路分类

  游泳线路

用户

对应着三张表:分类表

一个线路分类,对应着多个线路

一个线路,能够被多个用户收藏

一个用户,可以收藏多个线路

[展开全文]