Java面向对象特性(二)
前言
本篇继续讲面向对象特性,自动装箱和拆箱,抽象和接口,内部类和lambda表达式,枚举类型等方面。
我的学习笔记
后面准备整理一下Java基础、JVM和并发编程的知识,后面再是ssm框架。这些都是基础部分,也是最重要的部分之一。本篇从Java语言的面向对象特性开始讲诉,Java的这个特点和C#很像。Java主要有封装、继承、多态这三个特性,抽象不是特性,但是也很重要。
这篇我们从sql语句优化开始分析,这个时最基础的,可能我们在使用过程中都没有注意,也没有相关经验,但是有了这个意识,我们需要看别人总结的经验,自己去记忆和动手试下实例,加深理解。然后从mysql引擎的选择等方面进行分析,更恰当的去使用mysql。
上篇已经建立了测试数据库,然后通过相关工具找到了慢查询的语句,这些就是我们优化的对象,本篇就从索引的角度去改善我们的数据库性能。共四种索引,主键索引、唯一索引、普通索引、全文索引。索引是有消耗的,占空间的,MYI格式文件在data文件夹下。
之前已经了解过mysql的基本原理,重点是我们该从哪些方面去改善数据库性能,或者从设计开始怎么样去合适的设计,可以使用哪些工具和方法去帮助我们监测数据库,并根据在数据库原理的理解基础上,对不同的业务需求不同的软硬件环境,尽量做出最优的优化策略。下面就看下有哪些优化方法和适用场景,可以根据实际选用其中一部分进行优化,而且优化是一个整体的,所以不是改变一个方法就能大幅提升性能,也没有确定的套路。本文在看了传智mysql优化课程之后记录的学习笔记。
数据库是后台开发重中之重的一个环节,了解当前各种类型的数据库,并在了解各种数据库设计原理的基础上,深入学习相关优化策略,加之以实战经验,才是长久的发展之计。之后对先对关系型数据库–mysql为例进行深入学习笔记记录,毕竟开源,而且也是世界顶级的数据库,然后对非关系型数据库NoSql进行学习,以Redis为例,这些都已经接触过了,之后将做一个总结的笔记。
前面已经详细的讨论了计算机网络提供通信服务的过程。接下来讨论这些通信服务是如何提供给应用进程来使用的。每个应用层协议是为了解决某一类应用问题,问题的解决往往是通过位于不同主机的多个应用进程之间的通信和协同工作来完成的。应用层的协议许多都是基于客户服务器方式。即使是对等通信,实质也是一种特殊的客户服务器方式。
运输层是整个网络体系结构中的关键层次。TCP/IP体系中运输层最重要的两个协议:UDP和TCP。运输层是在主机的协议栈中的,TCP是保证可靠的交付,UDP是尽最大努力的交付。重点是TCP的各种机制是如何保证可靠交付,在面向连接的可靠服务、流量控制、拥塞控制等方面作出了何种的努力,以及TCP连接的三次握手和断开连接的四次挥手以及为什么这样设计。本节篇幅很长,多图,内容很关键。
在有了一个大概了解之后,作为web 开发人员,我们还要重点学习某几层,就是网络层(IP),运输层(TCP,UDP),应用层(HTTP,DNS,STMP等)。IP的分配,子网掩码,IP协议确保数据流主机到主机,而计算机通信代表的是计算上进程之间的通信,所以TCP,UDP提出端口概念,一个进程占用一个端口,这样就实现了准确的通信。