zoukankan      html  css  js  c++  java
  • 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:延迟加载

  • 相关阅读:
    [bug] MySQL: The user specified as a definer ('root'@'%') does not exist
    [java] Maven安装本地jar包
    [bug] Openresty:content_by_lua_file 404
    [bug] Failed building wheel for xxx
    [bug] TypeError : unsupported operand type(s) for += : 'NoneType' and 'int'
    [Python] Flask从0到1开发轻量级网页
    [bug]Flask:KeyError: 'A secret key is required to use CSRF.'
    [bug] sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1054, "Unknown column 'recevie_name' in 'field list'")
    mac os 解决Error: EMFILE: too many open files错误
    从零开始的react入门教程(一),让我们从hello world开始
  • 原文地址:https://www.cnblogs.com/katy0308/p/13781615.html
Copyright © 2011-2022 走看看