前言
网上的 Java 基础面试题文章有非常多,但是大部分都比较老了。
很多题目早已不是当前的热门题目,没有必要在这些题目上花太多时间。
很多答案放现在已经不准确,可能会误导新人。
因此,我整理了一些时下高频的 Java 基础题目以及Java零基础入门教程,并反复斟酌,给出符合当前版本的解析。
大家也可以直接访问(直接在线观看java最新版的面试题+入门教程):
Java300集零基础适合初学者视频教程_Java300集零基础教程_Java初学入门视频基础巩固教程_Java语言入门到精通
Java考试_Java笔试题机试题真题讲解_JavaWeb阶段考试_Java期末考试通关_Java编程_Java程序员面试题_日常学习
网络编程:
1.IP地址和端口号
1)IP地址
用来标志网络中的一个通信实体的地址。通信实体可以是计算机,路由器等。
2)IP地址分类
IPV4:32位地址,以点分十进制表示,如192.168.0.1
IPV6:128位(16个字节)写成8个16位的无符号整数,每个整数用四个十六进制位表示,数之间用冒号(:)分开,如:3ffe:3201:1401:1280:c8ff:fe4d:db39:1984
3)特殊的IP地址
127.0.0.1 本机地址
192.168.0.0--192.168.255.255私有地址,属于非注册地址,专门为组织机构内部使用。
4)端口:port
IP地址用来标志一台计算机,但是一台计算机上可能提供多种应用程序,使用端口来区分这些应用程序。 端口是虚拟的概念,并不是说在主机上真的有若干个端口。通过端口,可以在一个主机上运行多个网络应用程序。 端口范围0---65535,16位整数
5)端口分类
公认端口 0—1023 比如80端口分配给WWW,21端口分配给FTP,22端口分配给SSH,23端口分配给telnet,25端口分配给smtp
注册端口 1024—49151 分配给用户进程或应用程序
动态/私有端口 49152--65535
6)理解IP和端口的关系
IP地址好比每个人的地址(门牌号),端口好比是房间号。必须同时指定IP地址和端口号才能够正确的发送数据
IP地址好比为电话号码,而端口号就好比为分机号。
2.介绍OSI七层模型和TCP/IP模型
OSI(Open System Interconnection),开放式系统互联参考模型 。是一个逻辑上的定义,一个规范,它把网络协议从逻辑上分为了7层。每一层都有相关、相对应的物理设备,比如常规的路由器是三层交换设备,常规的交换机是二层交换设备。OSI七层模型是一种框架性的设计方法,建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题,其最主要的功能就是帮助不同类型的主机实现数据传输。它的最大优点是将服务、接口和协议这三个概念明确地区分开来,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。
TCP/IP协议是Internet最基本的协议、Internet国际互联网络的基础,主要由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。
ISO制定的OSI参考模型的过于庞大、复杂招致了许多批评。伴随着互联网的流行,其本身所采用的TCP/IP协议栈获得了更为广泛的应用和认可。在TCP/IP参考模型中,去掉了OSI参考模型中的会话层和表示层(这两层的功能被合并到应用层实现)。同时将OSI参考模型中的数据链路层和物理层合并为主机到网络层。
3.TCP协议和UDP协议的比较
TCP和UDP是TCP/IP协议栈中传输层的两个协议,它们使用IP路由功能把数据包发送到目的地,从而为应用程序及应用层协议(包括:HTTP、SMTP、SNMP、FTP和Telnet)提供网络服务。
TCP的server和client之间通信就好比两个人打电话,需要互相知道对方的电话号码,然后开始对话。所以在两者的连接过程中间需要指定端口和地址。
UDP的server和client之间的通信就像两个人互相发信。我只需要知道对方的地址,然后就发信过去。对方是否收到我不知道,也不需要专门对口令似的来建立连接。具体区别如下:
1)TCP是面向连接的传输。UDP是无连接的传输
2)TCP有流量控制、拥塞控制,检验数据数据按序到达,而UDP则相反。
3)TCP的路由选择只发生在建立连接的时候,而UDP的每个报文都要进行路由选择
4)TCP是可靠性传输,他的可靠性是由超时重发机制实现的,而UDP则是不可靠传输
5)UDP因为少了很多控制信息,所以传输速度比TCP速度快
6)TCP适合用于传输大量数据,UDP适合用于传输小量数据