栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

读书笔记-java开发手册

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

读书笔记-java开发手册

读书笔记-java开发手册
  • 计算机基础
    • 计算机网络协议
      • IP协议
      • ICMP
      • TCP
      • HTTPS
    • 信息安全
      • SQL注入
      • XSS
      • CSRF
  • 面向对象
    • 类
    • 泛型
  • JVM
    • 字节码
    • 类加载过程

计算机基础 计算机网络协议

物理层
数据链路层:IEEE 802.x
网络层:IP ARP
传输层:TCP/UDP
应用层:HTTP FTP SMTP

IP协议

特点:面向无连接、无状态,没有额外机制保证发送的包是否有序到达。是唯一的。

主要功能:在WLAN中进行寻址,选择最佳路由。
生存时间TTL:表示IP报文被丢弃之前可以经过的最大路由数量。初始值由源主机设定,每经过一个路由减一,直到为零时丢弃,并发送ICMP报文通知主机。
最大传输单元:MTU

ICMP

网络层协议,用于验证网络是否通畅、主机是否可达、路由是否可用。

TCP

传输控制协议:面向连接的,可靠的,端对端的传输协议。
三次握手&四次挥手
为什么要三次握手:1)信息对等 2)确保连接建立成功 3)防止已经失效的连接重新传到服务器出现脏连接。
为什么要四次挥手:确保信息已经传输完毕

HTTPS

1.客户端请求HTTPS网址建立连接,将支持的算法列表发送给服务端;
2.服务端选择其中一种加密方式,将自己的身份信息以证书的形式发送给客户端:证书包含网站地址、加密公钥以及证书颁发机构等信息。
3.客户端验证证书合法性,如果合法,客户端生成一串用于对称加密的随机数密钥,用证书中的公钥进行加密。并传送给服务端。
4. 服务端接收后用私钥进行解密,得到随机数密钥。客户端与服务器双方利用这个会话密钥加密要传输的数据进行通信。

信息安全

CIA原则:保密性、完整性、可用性。

SQL注入

1)过滤用户输入参数中的特殊字符
2)禁止通过字符串拼接的SQL语句,严格使用参数绑定传入的SQL参数。
3)合理使用数据库访问框架提供的防注入机制

XSS

跨站脚本攻击:向正常用户请求的HTML页面中插入恶意脚本。
防范:对用户输入数据做过滤或者转义

CSRF

跨站请求伪造:直接盗用用户身份执行黑客指定操作。
防范:1. CSRF Token验证。 2)增加人机交互

面向对象

面向对象 vs 面向过程
面向过程:有顺序的完成一件事。不利于软件维护和复用。
面向对象:以对象为中心,万物皆可对象。

面向对象三大特性:继承、封装、多态。

继承:关键字:extends。 子类继承父类的全部方法和属性
封装:public > protected > 无 > private
多态:根据实际的运行对象类型,同一个方法会产生不同的结果,使得同一个行为具有不同的表现形式。

类

抽象类 vs 接口

抽象类接口
关键字abstractinterface
继承或实现extendsimplements
方法实现可以有不能有,JDK8后运行有default
方法访问控制符无限制默认public abstract
属性访问控制符无限制默认public abstract
静态方法可以有JDK8后可以有
静态代码块可以有不能有

内部类
四种:

  1. 静态内部类:static class StaticInnerClass{};
    好处:作用域不会扩展到包外;可以通过外部类.内部类的方法访问;内部类可以访问外部类中的所有静态属性和方法。
  2. 成员内部类:private class InstanceInnerClass{};
  3. 局部内部类:定义在方法或者表达式内部。
  4. 匿名内部类:(new Thread(){}).start()

序列化

  1. java原生序列化:Serializable: 要显示定义serialVersionUID.
  2. Hessian序列化:支持跨语言
  3. Json序列化:在序列化过程中抛弃了类型信息。
泛型

E(element) 、T(type of Object)、K(key)、V(value)
优势:在编译期对类型进行检查,使得类型安全;提升可读性、代码复用

JVM 字节码

机器码:机器码就是cpu能够直接读取并运行的代码,用二进制编码表示,也叫做机器指令码。

字节码:字节码是一种中间状态的二进制代码,是由源码编译过来的,可读性没有源码高。而且cpu也不能够直接读取字节码,在java中,字节码需要经过JVM虚拟机转译成机器码之后,cpu才能够读取并运行。

java源文件变成字节码过程:.java -> .class

字节码执行方式

  1. 解释执行
  2. JIT编译执行
  3. JIT编译与解释混合执行(默认模式)
类加载过程

加载:通过全限定类名获取编译后的二进制字节流,将这个二进制字节流的静态存储结构转化为运行时数据;生成java.lang.Class对象作为方法区中这个类各种数据的入口。
验证:验证Class文件中包含的信息是否符合《java虚拟机规范》,是否会对自身安全产生威胁
准备:为静态变量分配内存并设置初始值
解析:将常量池中的符号引用替换为直接引用
初始化:执行类构造器方法

加载器:
启动类加载器:lib目录下等
扩展类加载器/平台类加载器:lib/ext目录下
应用类加载器:用户类路径上所有的类库
双亲委派机制

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1006239.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号