Java开发基础知识总结(上)

 【老规矩:先点赞收藏,再礼貌阅读!】

本期分享的是一些Java开发的基础知识,篇幅所限,分两期分享。本文的知识点总结的知识点都是网上海量资料中精心挑选的,文章的价值所在就是对于构建知识体系最需要的基础知识点。学习的过程就是自己探寻答案的过程,这个过程可以深化记忆和理解,相反,省略这个过程不利于学习新知识。注意,不要死记硬背,要真正理解!

搜索公中号【天行科技馆】,关注这个上进的IT爱好者,与你一起在IT的道路上越走越远!

 目录(上)

一、面向对象概念

1、面向对象和面向过程的区别?

2、对象和类的关系?举例说明

3、类里面包含什么?

4、类的特性?

二、网络基础

5、DNS是什么?

6、域名和端口?

7、CDN是什么?

8、外网IP和内网IP区别?内网IP网段?

9、VPN是什么?

10、Https和Http区别?默认端口号?

11、get和post请求有哪些区别?

三、计算机原理和操作系统

12、内存、CPU、硬盘?

13、Linux基本命令?

14、线程和进程的区别?


一、面向对象概念

1、面向对象和面向过程的区别?

面向过程:面向过程性能比面向对象高。因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌⼊式开发、Linux/Unix等一般采用面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。

面向对象:面向对象易维护、易复用、易扩展。因为面向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,面向对象性能比面向过程低。

参考问题:面向过程性能一定比面向对象高?

不一定,面向过程也需要分配内存,计算内存偏移量,Java性能差的主要原因并不是因为它是面向对象语言,而是Java是半编译语言,最终的执行代码并不是可以直接被CPU执行的二进制机器码。

而面向过程语言大多都是直接编译成机械码在电脑上执行,并且其它一些面向过程的脚本语言性能也并不一定比Java好。

2、对象和类的关系?举例说明

类是对象的模版,对象是类的实例。

举例:猫是一个类,你养的那只猫是一个对象;汽车是一个类,你开的那辆车是一个对象。

3、类里面包含什么?

属性和方法。

4、类的特性?

封装性

将数据和操作封装为一个有机的整体,由于类中私有成员都是隐藏的,只向外部提供有限的接口,所以能够保证内部的高内聚性和与外部的低耦合性。用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员,能够增强安全性和简化编程。

继承性

继承性更符合认知规律,使程序更易于理解,同时节省不必要的重复代码。

多态性

同一操作作用于不同对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。

二、网络基础

5、DNS是什么?

域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使⼈更方便地访问互联网。

6、域名和端口?

域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。

由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。

"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。例如计算机中的80端口、21端口、23端口等。物理端口又称为接口,是可见端口,计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。电话使用RJ11插口也属于物理端口的范畴。

7、CDN是什么?

CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。

8、外网IP和内网IP区别?内网IP网段?

外网IP就是互联网的IP,内网IP就是内部网的IP。

内网IP网段如下:

10.0.0.0/8------------10.0.0.0~10.255.255.255(A类)

172.16.0.0/12---------172.16.0.0~172.31.255.255(B类)

192.168.0.0/16--------192.168.0.0~192.168.255.255(C类)

9、VPN是什么?

虚拟专用网络(VPN)的功能是:在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN可通过服务器、硬件、软件等多种方式实现。

10、Https和Http区别?默认端口号?

HTTP和HTTPS的基本概念

HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加⼊SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

HTTP与HTTPS有什么区别?

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

HTTPS和HTTP的区别主要如下:

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

11、get和post请求有哪些区别?

GET在浏览器回退时是无害的,而POST会再次提交请求。GET产生的URL地址可以被Bookmark,而POST不可以。

GET请求会被浏览器主动cache,而POST不会,除非手动设置。GET请求只能进行url编码,而POST支持多种编码方式。

GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

GET请求在URL中传送的参数是有长度限制的,而POST么有。

对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。

GET参数通过URL传递,POST放在Request body中。

三、计算机原理和操作系统

12、内存、CPU、硬盘?

内存是计算机的重要部件之一。

它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行。

内存性能的强弱影响计算机整体发挥的水平。

内存(Memory)也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,与硬盘等外部存储器交换的数据。

只要计算机开始运行,操作系统就会把需要运算的数据从内存调到CPU中进行运算。当运算完成,CPU将结果传送出来。

内存的运行也决定计算机整体运行快慢的程度。内存条由内存芯片、电路板、⾦手指等部分组成。

电脑硬盘是计算机最主要的存储设备。硬盘(港台称之为硬碟,英文名:Hard Disk Drive,简称HDD全名温彻斯特式硬盘)由一个或者多个铝制或者玻璃制的碟片组成。这些碟片外覆盖有铁磁性材料。

绝大多数硬盘都是固定硬盘,被永久性地密封固定在硬盘驱动器中。早期的硬盘存储媒介是可替换的,不过今日典型的硬盘是固定的存储媒介,被封在硬盘里(除了一个过滤孔,用来平衡空气压力)。随着发展,可移动硬盘也出现了,而且越来越普及,种类也越来越多大多数微机上安装的硬盘,由于都采用温切斯特(winchester)技术而被称之为“温切斯特硬盘”,或简称“温盘”。

中央处理器(CPU),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。电子计算机三大核心部件就是CPU、内部存储器、输入/输出设备。中央处理器的功效主要为处理指令、执行操作、控制时间、处理数据。

13、Linux基本命令?

10个Linux基本命令。

1.sudo

这个SuperUserDo是Linux新手要使用的最重要的命令。需要根权限的每一个命令都需要这个sudo命令。你可以在需要根权限的每个命令之前使用sudo。

$ sudo su 

2.ls(list)

借助list命令,终端就会显示你正在处理的那个目录里面的所有文件和文件夹。假设我在/home文件夹里面,想查看/home里面的目录和文件。

/home$ ls

/home中的ls返回下列结果:imad lost+found

3.cd

更改目录(cd)是始终在终端中使用的主要命令。它是最基本的Linux命令之一。使用这个命令很简单。只要输⼊你想要从当前目录进⼊到的那个文件夹的名称。如果想要返回上一级,只要将双圆点(..)作为参数。

假设我在/home目录中,想进⼊到始终在/home里面的usr目录。下面是我可以使用cd命令的方法:

/home $ cd usr

/home/usr $

4.mkdir

仅仅更改目录还不全面。有时候,你想要创建一个新的文件夹或子文件夹。可以使用mkdir命令来做到这一点。只要在终端中将你的文件夹名称放在mkdir命令的后面即可。

$ mkdir folderName

5.cp

拷贝粘贴是我们为了组织整理文件而需要完成的重要任务。使用cp将帮助你从终端拷贝粘贴文件。首先,你确定想要拷贝的那个文件,然后输⼊目的地位置,即可粘贴文件。

$ cp src des

注意:如果你将文件拷贝到任何新文件都需要根权限的目录,那么你就需要使用sudo命令。

6.rm

rm这个命令可以移除你的文件,甚至移除你的目录。如果文件需要根权限才能移除,可以使用-f。你还可以使用-r来进行递归移除,从而移除你的文件夹。

$ rm myfile.txt 

7.apt-get

就不同的发行版而言,这个命令各不相同。在基于Debian的Linux发行版中,想安装、移除和升级任何软件包,我们可以使用高级包装工具(APT)软件包管理器。apt-get命令可帮助你安装需要在Linux中运行的软件。这是个功能强大的命令行工具,可以执行安装、升级、甚至移除软件这类任务。

在其他发行版(比如Fedora和Centos)中,有不同的软件包管理器。Fedora过去有yum,但现在它有dnf。

$ sudo apt-get update

$sudo dnf update 

8.grep

你需要找到一个文件,但是又记不得它的确切位置或路径。grep可以帮助你解决这个问题。你可以使用grep命令,根据给定的关键字帮助找到文件。

$ grep user /etc/passwd 

9.cat

作为用户,你常常需要查看来自脚本的一些文档或代码。同样,其中一个Linux基本命令是cat命令。它会为你显示文件里面的文本。

$ cat CMakeLists.txt 

10.poweroff

有时候,你需要直接从终端来关机。这个命令就能完成这项任务。别忘了在命令的开头添加sudo,因为它需要根权限才能执行poweroff。

$ sudo poweroff

14、线程和进程的区别?

进程和线程的根本区别是进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。另外区别还有资源开销、包含关系、内存分配、影响关系、执行过程等。

资源开销:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自⼰独立的运行栈和程序计数器(PC),线程之间切换的开销小。

包含关系:如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。

内存分配:同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的。

影响关系:一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。

执行过程:每个独立的进程有程序运行的入口、顺序执行序列和程序出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制,两者均可并发执行。

进程和线程的根本区别是进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天行IT科技馆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值