java基础部分整理

一.常用的dos命令操作符

什么是dos命令


​ window操作系统通过命令提示符cmd模拟ms-dos系统的功能。

常用的dos命令


​ 切换当前盘 :想去那个盘,直接那个盘加:

​ 快捷打开cmd : win + R

​ 进入/打开文件夹:cd 文件夹路径名

​ 返回上一级 :cd..

​ 看文件目录:dir

​ 清屏 :clr

​ 退出:exit

二.java的简介及组成

java语言的特性


跨平台:不区分操作系统,真正的运行依靠虚拟机JVM实现。

Tip:java程序跨平台,JVM不跨平台,不同的操作系统对应要有不同的JVM.

JRE和JDK


JRE:

Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。包含jvm以及其核心类库。

JDK:

Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。

具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。

区别:

简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。

Tip:通过javac编译器进行编译将java源程序转化为字节码以“.class"结尾的文件进行运行。

三.类及其定义

什么是类

​ 类是java当中所有源代码的基本组织单位,类的名称必须与包含该类的文件名相同。

测试类

  • 含义

    ​ 包含main方法的类。main方法:程序开始运行的入口。

  • 定义格式:

    public static void main(String [],args) {

    }

四.变量及其命名规则

关键字


​ 均为小写字母构成,不能用作变量名。

标识符


可以由字母,数字,下划线组成,当不能以数字作为开头。

变量取名规则


  • 类名:大驼峰式,每个单词的首字母大写

  • 变量名及方法名:小驼峰式,第一个单词首字母小写,后单词首字母小写。

五.数据类型

基本数据类型


整数型:

  • byte(1B)
  • short (2B)
  • int (4B)
  • long(8B,加上L后缀)

浮点型:

  • float(要加上F后缀)
  • double

字符型:

  • char

布尔型:

  • boolean

Tip:数据的表示范围与其数据存储字节无关,eg float存储的范围会比long存储的范围来的广。因为float采用科学记数法进行表示。

数据类型转换


自动类型转换

​ 范围从小到大进行转换,不需要人为进行操作。

强制类型转化

​ 可能发生精度损失数据溢出

字节缓冲流

作用:利用缓冲区(数组),提高读写效率

字节缓冲输出流(bufferfos)

​ 继承了outputstream ,继承了其方法【close,flush,write】close在关闭流时会先调用flush

构造方法:(ops out)//不指定大小,out输出的目的地

​ (ops out ,int size ) //指定buff大小

字节缓冲输入流(bufferfis)

继承的方法:read,read(byte[]),close

构造方法:构造方法:(fis iut)//不指定大小,out输出的目的地

​ (fis iut ,int size ) //指定buff大小

两者直接关闭缓冲流对象即可,不用再关闭fis/fos对象。

字符缓冲流

字符缓冲输出流(bufferwriter)

继承方法:write(char[],buf)

特有成员方法:void newline()//根据系统输出换行符。

println调用的就是newline

字符缓冲输入流(bufferreader)

继承方法:read(),read(char[] buf),close

特有成员方法

String readline()//读单行,返回该行字符串。读至末尾返回,NULL 但是不会读取换行

行判断标准:/r /n /r/n

字符编码和字符集

编码按照某种规则将字符存储到计算机当中

字符集也叫编码表,系统能支持的所有字符//计算机存储对应规则

一旦编码方式被指定,字符集也确定下来。

常见的字符集:ASCII码表(0-127),

​ GBK(双字节编码)/GBxxx,

​ unicode(万国码,最多使用4字节进行存储)u-8(最经常使用,3字节存储中文)

中文系统编码(gbk) ansi---系统默认

idea默认读取utf-8

转换流

作用:

​ 将字符在不同编码之间进行转换。

InputStreamReader

可以按照指定编码表进行编码转换,将字节转换为字节【解码】

继承了reader 可使用其方法

构造方法:

1.默认字符集:(ips in)

2.指定字符集 (ips in ,Str charsetname)

构造方法的字符集要好读取文件的编码格式相同

OutputStreamWriter

将字符转换为字节【编码】字符通向字节的桥梁,按照致电给的编码表

继承自Write 可使用其方法

构造方法:

​ (ops)//默认格式【utf-8】

​ (ops out String charsetname)//charsetname不区分大小写

序列化与反序列化

序列化:将对象以流的方式写入到文件当中,该过程既包括字符也包括字节

【ObjectOutputStream】

继承flieoutputstream

构造方法:传参fos

writeObject(对象);//该对象必须实现serializable接口,该接口会给此类一个标记才可进行序列化

反序列化:将文件种保存的对象以流的方式读取出来,也叫读对象,叫对象的反序列化

【ObjectInputStream】

继承了fileinputstream

构造方法:传参fis

Object readObject();//抛出classNotFund异常,没有找到class文件

transient

被其修饰的成员不能被序列化,但是没有静态的含义。

静态static变量不能进行序列化

在生成class文件之后因为存在serializable之后就会为其添加一个序列号,该序列号也会被写入到txt文件当中。

如果对象被更改就会产生新的序列号,反序列化之后就会有invalidClassException

解决方法:人为加上静态的序列号

static final long serialVersionUID=42L;//常量不能改变

打印流-PrintStream

只负责输出,没有输入,不会抛出IO异常,继承自字节输出流

构造方法:

​ 写了打印的目的地->文件/字节输出流/文件路径

自己特有方法:print/println输入的是啥就写入啥//默认的目的地是控制台。

改变目的地:systerm.setout(目的地),目的地可以是任意目的的输出流

继承的方法write输入字节写入的是字符。

网络编程

软件体系结构

1.c/s:client客户端和浏览器端

2.b/s:browser浏览器端和服务器端

网络通信协议

使得同一网络当中的计算机可以进行通信的通信规则。通信双方需同时遵守

tcp/ip协议(传输控制协议,应用层协议)

协议分类

udp协议:

面向无链接的协议,不能保证数据的完整性,可用于视频音频的数据传输。发送的协议数据再64B以内

tcp协议:

面向链接,客户端和服务器端进行三次握手。数据传输安全。

ip地址:

相当于计算机的标号,ipv4,由4字节构成。32个2进制,可写成a.b.c.d,a-d表示十进制(0-255)

ipv6由16个字节构成。

查看本机IP:cmd->ipconfig

​ ping +ip 成功表示可以进行通信

​ 127.0.0.1/localhost代表本地的ip地址

端口号:

逻辑端口,操作系统为软件随机分配的端口号。或者软件自己向系统要,2B组成(0-65535)1024前的端口号不能使用,已经分配给已知的端口号。发送时使用IP加上端口号。

常用端口号:

80端口:网络端口号

3306:mysql 1521:oracle

8080: Tomcat

TCP通信程序

服务器端和客户端进行逻辑链接,该链接之中,包含一个对象,IO对象,IO对象是字节流对象。

服务器端自己没有IO流,使用客户端(socket)的流和客户端进行数据交互。

客户端Socket类:

在java.net包下,此类实现客户端的套接字(包括ip和端口号)

构造方法:

(string host,int port)//host可以是ip也可以是主机名

成员方法:

ops getops();//返回此套接字的输出流(网络流而不是自己创建的)

Ips getips()//返回输入流

void close()

创建socket对象就会和服务进行3次握手,没有链接成功返回异常(连接异常)。

服务器端serverSocket:

服务器实现的套接字。

构造方法:

(int port)//创建绑定到特定端口的服务器套接字

特有方法:

socket accep(),侦听并接受此套接字的链接

获得socket之后使用它的流。

函数式编程

函数式接口:有且仅有一个抽象方法的接口,但接口中可以包含其他类型的方法

格式可以在定义接口时增加一个注解,@functionalinterface:j检测接口是不是函数式接口。

体现就是lambda

匿名内部类会有一个class文件,lambda表达式不会产生class文件。

lambda:延迟加载

原文地址:https://www.cnblogs.com/katy0308/p/13781615.html