本周学习总结-20211226

目录

每日学习纲要

学习内容总结

1. JAVA 类与对象

1.1 引用 

1.2 继承

1.3 重载 

1.4 构造方法 

1.5 this

1.6 传参

1.7 包(package)

1.8 访问修饰符

1.9 类属性

1.10 类方法

1.11 属性初始化

2.网络编程基础

2.1 网络基础

2.2 Socket 编程 

3.Oracle数据库基础

3.1 数据库定义

3.2 数据库管理系统

3.3 为什么使用数据库

3.4 数据库的种类

3.5 Oracle实例基本操作 

3.6  Oracle体系结构 


每日学习纲要

12.23

  1. 复习JAVA的类部分知识
  2. 学习网络编程的基础知识

12.24

  1. 复习数据库理论基础知识
  2. 学习Oracle数据库教程

12.25

  1. 安装并配置SQL和Oracle环境
  2. 学习Socket相关知识,尝试进行不同的程序之间的通信。

12.26

  1. 学习Oracle数据库教程
  2. 复习JAVA的对象部分知识。

学习内容总结

1. JAVA 类与对象

1.1 引用 

        一个变量的类型是类类型,而非基本类型,那么该变量又叫做引用。引用类似C语言中的指针。当一个对象被创建出来,我们并没有办法访问它,为了访问这个对象,使用引用来指代这个对象。

Student john = new Student();

        john这个变量是Student类型,又叫做引用,=在这里表示指向,意味着jahn这个引用代表右侧创建的对象。

        与C语言类似,如果一个对象没有被引用,那么便无法被找到。多个引用可以指向同一个对象,但单个引用不可指向多个对象。

1.2 继承

        继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。继承具有以下特点:

  • 子类拥有父类非私有( private) 的属性、方法。

  • 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

  • 子类可以用自己的方式实现父类的方法。

  • Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 B 类继承 A 类,C 类继承 B 类,所以按照关系就是 B 类是 C 类的父类,A 类是 B 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。

  • 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。

1.3 重载 

        重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。最常用于构造函数的重载。重载具有以下规则:

  • 被重载的方法必须改变参数列表(参数个数或类型不一样);
  • 被重载的方法可以改变返回类型;
  • 被重载的方法可以改变访问修饰符;
  • 被重载的方法可以声明新的或更广的检查异常;
  • 方法能够在同一个类中或者在一个子类中被重载。
  • 无法以返回值类型作为重载函数的区分标准。

1.4 构造方法 

        通过一个类创建一个对象,这个过程叫做实例化,实例化是通过调用构造方法(又叫做构造器)实现的。构造方法和它所在类的名字相同,但构造方法没有返回值。通常会使用构造方法给一个类的实例变量赋初值,或者执行其它必要的步骤来创建一个完整的对象。

        不管是否自定义构造方法,所有的类都有构造方法,因为 Java 自动提供了一个默认构造方法,默认构造方法的访问修饰符和类的访问修饰符相同(类为 public,构造函数也为 public;类改为 protected,构造函数也改为 protected)。一旦定义了自己的构造方法,默认构造方法就会失效。

        与普通方法一样,构造方法也可以重载。

1.5 this

        this这个关键字,相当于普通话里的“我”,即代表当前对象。通过this关键字可以访问对象的属性。如果要在一个构造方法中,调用另一个构造方法,可以使用this()

1.6 传参

        变量有两种类型 基本类型 和 类类型。参数也是变量,所以传参分为 基本类型传参 和 类类型传参。

        基本类型传参在方法内,无法修改方法外的基本类型参数。如果一个变量是基本类型 = 表示赋值的意思。如果一个变量是类类型 = 不再是赋值,而是表示指向。

        类类型又叫引用,因此类类型传参实际上是使引用指向新的对象。

1.7 包(package)

        为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间比较接近的类,可以规划在同一个包下,便于使用。包的作用如下:

  • 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。

  • 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。

  • 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

        Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。

1.8 访问修饰符

成员变量有四种修饰符

  • private 私有的
  • package/friendly/default 不写
  • protected 受保护的
  • public 公共的

关系如下图所示: 

到底什么情况该用什么修饰符呢?

  • 属性通常使用private封装起来
  • 方法一般使用public用于被调用
  • 会被子类继承的方法,通常使用protected
  • package用的不多,一般新手会用package,因为还不知道有修饰符这个东西

再就是作用范围最小原则,简单说,能用private就用private,不行就放大一级,用package,再不行就用protected,最后用public。 这样就能把数据尽量的封装起来,没有必要露出来的,就不用露出来了

1.9 类属性

        当一个属性被static修饰的时候,就叫做类属性,又叫做静态属性。当一个属性被声明成类属性,那么所有的对象,都共享一个值。

       如果一个属性,每个对象都不一样,那么这样的属性就应该设计为对象属性,因为是跟着对象走的,每个对象都是不同的如果一个属性,所有的子类都共享,都是一样的,那么就应该设计为类属性。

1.10 类方法

        类方法: 又叫做静态方法。对象方法: 又叫实例方法,非静态方法。访问一个对象方法,必须建立在有一个对象的前提的基础上。访问类方法,不需要对象的存在,直接就访问。

        静态方法是在类中使用staitc修饰的方法,在类定义的时候已经被装载和分配(注意类定义的时候静态方法已经被装载和分配!这个时候还没有非实例化对象,当然就不能调用非静态方法)。而非静态方法是不加static关键字的方法,在类定义时没有占用内存,只有在类被实例化成对象时,对象调用该方法才被分配内存。

1.11 属性初始化

        属性初始化分为类属性初始化和对象属性初始化。

        对象属性初始化有3种:

  • 声明该属性的时候初始化
  • 构造方法中初始化
  • 初始化块

        类属性初始化有2种:

  • 声明该属性的时候初始化
  • 静态初始化块 

        优先级为:静态(类)初始化 总是先于 对象(成员)属性初始化调用,构造方法中初始化 总是最后一个调用。 初始化块 与 属性声明时初始化的调用顺序取决于代码的先后顺序。

2.网络编程基础

2.1 网络基础

        网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。

        java.net 包中 J2SE 的 API 包含有类和接口,它们提供低层次的通信细节。可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节。

        java.net 包中提供了两种常见的网络协议的支持:

  • TCP:TCP(英语:Transmission Control Protocol,传输控制协议) 是一种面向连接的、可靠的、基于字节流的传输层通信协议,TCP 层是位于 IP 层之上,应用层之下的中间层。TCP 保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称 TCP / IP。

  • UDP:UDP (英语:User Datagram Protocol,用户数据报协议),位于 OSI 模型的传输层。一个无连接的协议。提供了应用程序之间要发送数据的数据报。由于UDP缺乏可靠性且属于无连接协议,所以应用程序通常必须容许一些丢失、错误或重复的数据包。

2.2 Socket 编程 

        使用 Socket(套接字)可以进行不同的程序之间的通信。客户端程序创建一个套接字,并尝试连接服务器的套接字。

        当连接建立时,服务器会创建一个 Socket 对象。客户端和服务器现在可以通过对 Socket 对象的写入和读取来进行通信。

        java.net.Socket 类代表一个套接字,并且 java.net.ServerSocket 类为服务器程序提供了一种来监听客户端,并与他们建立连接的机制。参考以下文章:

ServerSocket详解 - 简书 (jianshu.com)https://www.jianshu.com/p/665994c2e784

3.Oracle数据库基础

3.1 数据库定义

        DB的全名是database,即数据库。

  • 数据库本质上便是一个文件集合,是一个储存数据的仓库,相当于一个文件系统
  • 数据库依照特定的规范把数据储存起來,用户能够对储存的数据进行增、删、改、查操作。

        总的来说,数据库是以特定方式存储、能与多个用户共享、具有尽量小的信息冗余、与程序相互独立的数据集合。

3.2 数据库管理系统

        数据库管理系统(databasemanagementsystem)是位于用户与操作系统间的一层数据管理方法,用以科学地组织和储存数据、高效地提取和维护数据。

3.3 为什么使用数据库

        由于传统式的io流文件储存数据有很多缺点:

  • 文件储存数据效率低;
  • 数据存取的操作非常繁杂;
  • 一般只有储存小量字符串数据。

        这些弊端的存在导致了数据库的出现,利用数据库储存数据就可以很好地规避它们。

3.4 数据库的种类

        数据库有两种类型,分别是关系型数据库和非关系型数据库。

  • 关系型数据库:Oracle、DB2、MicrosoftSQLServer、MicrosoftAccess、MySQL等。
  • 非关系型数据库:NoSql、Cloudant、MongoDb、redis、HBase等。

        关系型数据库的优点:

  1. 能够复杂查询:可以用SQL句子便捷的在一个表及多个表之间做复杂的数据查询。
  2. 事务支持性优秀:能够实现对于安全性要求很高的数据访问。

        非关系型数据库的优点:

  1. 性能好:NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,并且不用通过SQL层的解析,因此性能表现优异。
  2. 可扩展性好:同样也是基于键值对,数据间耦合度低,因此很容易水平扩展。

3.5 Oracle实例基本操作 

        利用Database Configuration Assistant对数据库进行创建删除等配置,注意可能带来的注册表问题。

        利用sql*plus与oracle进行交互。注意利用exit/quit 退出,不要直接关闭窗口。

        Oracle数据库实例的启动过程分为3步骤,分别是启动实例、加载数据库、打开数据库。sql*plus中命令为:

STARTUP [nomount | mount | open | force] [resetrict] [pfile=filename]

关闭数据库实例也分为3个步骤,分别是关闭数据库、卸载数据库、关闭Oracle实例。sql*plus中命令为:

SHUTDOWN [normal | transactional | immediate | abort]

3.6  Oracle体系结构 

Oracle数据库服务器

        由两个部分组成:

  • 实例:实例是数据库启动时初始化的一组进程和内存结构
  • 数据库:数据库则指的是用户存储数据的一些物理文件

        实例是暂态的,是一组逻辑划分的内存结构和进程结构,会随着数据库的关闭而消失,而数据库其实就是一堆物理文件(控制文件,数据文件,日志文件等等)是永久存在的(除非磁盘损坏)。数据库和实例通常是一对一的,这种结构我们成为单实例体系结构;当然还有一些复杂的分布式的结构,一个数据库可以对多个实例,如Oracle的RAC。

逻辑存储结构

        数据库-->表空间-->段-->数据区-->数据块

   数据块:

  • 最小逻辑单位,也是执行数据库输入输出操作的最小存储单位
  • 数据块有标准大小,初始化参数DB_BlOCK_SIZE中。另外,Oracle支持在同一个数据库中使用多种大小的块,与标准块大小不同的块就是非标准块。

   数据区: 

  • 一组(可为一个)连续的数据块所构成的
  • 存储分配的最小单位
  • 目的是用来保存特定数据类型的数据

   数据段:  

  • 一个独立的逻辑存储结构
  • 是为特定的数据对象(如表、索引、回滚等)分配的一系列数据区。
  • 目的是用来保存特定对象。
  • 通常有以下4种类型的段:1.数据段    2.索引段    3.回滚段    4.临时段

物理储存结构 

  • 数据文件
  • 控制文件
  • 日志文件
  • 服务器参数文件
  • 密码文件、警告文件和跟踪文件

服务器结构 

  • 系统全局区(SGA)
  • 程序全局区(PGA)
  • 前台进程
  • 后台进程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值