java面试第十五天

网络编程:

多线程+网络:

1、服务器端的等待客户连接代码( while(true) ),服务器端与单个客户端交互的代码放入线程体( run )

2、客户端如有其他要求,与服务器交互的代码也要放入线程体

3、ServerSocket和Socket编码基于TCP/IP协议,重发一切错误数据,当网络不好时会使性能很差

4、Server端

new ServerSocket启动等待连接线程

在accept后启动交互线程

注意:交互时注意对应产生,读写流对应和次数对应

URL:网址,统一资源定位器

常用的构造器:

URL(String spec)

spec  一个完整的网址(协议+网址)

根据 String 表示形式创建 URL 对象。

URLConnection:与网址进行连接

通过URL的openConnection()方法生成一个URLConnection实例,通过下面两个方法,进行流的操作

getInputStream()

返回从此打开的连接读取的输入流

getOutputStream()

返回写入到此连接的输出流。

UDP编程:这种信息传输方式相当于传真,信息打包,在接收端准备纸

特点:

1、一种无连接协议,速度快

2、不保证数据的完整,不会进行重发

DatagramSocket和DatagramPacket类:

DatagramSocket:此类表示用来发送和接收数据报包的套接字。

DatagramPacket:数据报包,是UDP下进行传输数据的单位,数据存放在字节数组中,其中包括了目标地址和端口以及传送的信息。

用于接收:

DatagramPacket(byte[] buf , int length)

用于发送:

DatagramPacket(byte[] buf , int length , InetAddress address , int port )

UDP发送端:

1、创建一个DatagramSocket,不需要参数

2、创建一个DatagramPacket,指明接收方的IP地址和端口号

3、发送数据send(DatagramPacket p)

4、关闭DatagramSocket

UDP接收端:

1、创建一个DatagramSocket,指定接收方的IP地址和端口号

2、创建一个DatagramPacket,不需要IP地址和端口号

3、接收数据receive(DatagramPacket p)

4、关闭DatagramSocket

常用类库:

java.lang.*:

System 系统

Object 对象

clone()

equals()

hashCode()

toString()

Class  类

String/StringBuffer/StringBuilder  与字符串相关的

Thread 线程

所有的封装类

java.util.*:

Set--->HashSet,TreeSet

List--->ArrayList

Map--->HashMap(线程安全,不支持空),HashTable(线程不安全,支持空)

Collections--->外同步

Properties

Date

观察者-->Observable,接口Observer

数据结构+工具类

java.sql.*: 后面马上会讲到,JDBC

java.awt/swing.*:没什么机会用到

java.io.*:  流相当的多

File/FilenameFilter

Serializable 对象序列化接口

注意:写一个类要考虑的事情:1、无参构造器,2、实现序列化接口,3、重写equals,hashCode

FileInputStream

FileOutputStream

InputStreamReader

PrintStream

BufferedReader

nio包

java.net.*:  以后JSP,Servlet用的时候这个包都已经写好了

InetAddress--->IP地址

URL----------->网址

URLConnection---->连接

ServerSocket,Socket----TCP/IP

DatagramSocket,DatagramPacket----UDP

一些零散的类:

Comparable(可比较的),Comparator(比较器)

java.math.*;数字在商业软件中应用时找这个包

BigDecimal

与反射相关的:java.lang.reflect:  用的机会比较少

Runtime(运行环境),Process(进程) ,这两个在java.lang包里,用了这些就不能跨平台了,而且效率低

时间: 2024-10-29 19:10:15

java面试第十五天的相关文章

Java面试准备十六:数据库——MySQL性能优化

这里只是为了记录,由于自身水平实在不怎么样,难免错误百出,有错的地方还望大家多多指出,谢谢. 来自MySQL性能优化的最佳20+经验 为查询缓存优化你的查询 EXPLAIN你的SELECT查询 当只要一行数据是使用LIMIT 1 为搜索字段建索引 在Join表的时候使用相当类型的列,并将其索引 千万不要ORDER BY RAND() 避免SELECT * 永远为每张表设置一个ID 使用ENUM而不是VARCHAR 从PROCEDURE ANALYSE() 取得建议 尽可能的使用NOT NULL

Java进阶(三十五)java int与integer的区别

Java进阶(三十五)java int与integer的区别 前言 int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象. 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前者而integer 是后者(也就是一个类):因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null. 2.初始化时: int i =1; Integer i= new In

Java进阶(二十五)Java连接mysql数据库(底层实现)

Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜索.特将之前使用的方法做一简单的总结.也能够在底层理解一下连接数据库的具体步骤. 实现 首先需要导入相关的jar包,我使用的为:mysql-connector-java-5.1.7-bin.jar. 下面来看一下我所使用的数据库连接方法类: MysqlUtil.java package cn.edu

“全栈2019”Java第七十五章:内部类持有外部类对象

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第七十五章:内部类持有外部类对象 下一章 "全栈2019"Java第七十六章:静态.非静态内部类访问权限 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习

“全栈2019”Java第八十五章:实现接口中的嵌套接口

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第八十五章:实现接口中的嵌套接口 下一章 "全栈2019"Java第八十六章:嵌套接口可以多继承吗? 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组

“全栈2019”Java多线程第二十五章:生产者与消费者线程详解

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多线程第二十五章:生产者与消费者线程详解 下一章 "全栈2019"Java多线程第二十六章:同步方法生产者与消费者线程 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"

java:第十五章

第十五章 字符串 1.字符串(String)的定义 String str="内容"; String str=new String(); //内容为null String str=new String("内容"); 2.java.lang.* 字符串所在的包是java.lang. 注意:所有在java.lang包下的类,我们使用时,不需要import. 3.常用方法 str.length();//字符串的长度 str.indexOf(str1);//子串str1出现的

Java(第十五章)

第十五章 一.字符串类String 1.String是一个类,位于java.lang包中 2.创建一个字符串对象的2种方式: String 变量名="值"; String 对象名=new String("值"); 3.字符串的常用方法 3.1 字符串长度--length() 3.2 判断值是否相等 equals() 3.3 判断字符串对象地址是否相同 == 3.4 忽略 大小写 判断 equalsIgnoreCase() 3.5 大小写转换 toLowerCase(

马凯军201771010116《面向对象与程序设计Java》第十五周学习知识总结

实验十五  GUI编程练习与应用程序部署 一.知识学习部分 清单文件 每个JAR文件中包含一个用于描述归档特征的清单文件(manifest).清单文件被命名为MANIFEST.MF,它位于JAR文件的一个特殊的META-INF子目录中. 最小的符合标准的清单文件是很简单的:Manifest-Version:1.0复杂的清单文件包含多个条目,这些条目被分成多个节.第一节被称为主节,作用于整个JAR文件.随后的条目用来指定已命名条目的属性,可以是文件.包或者URL. 清单文件的节与节之间用空行分开,