精华内容
下载资源
问答
  • 虚拟机内存区常见名词: 栈帧(Frames): 栈帧是用来存储数据和部分结果,以及执行动态链接、方法返回值和异常信息的。 每次方法的调用都会生成一个栈帧,然后将该栈帧进行压栈。当方法结束后,该栈帧将会出栈、被...

    虚拟机内存区常见名词:

    栈帧(Frames):

    栈帧是用来存储数据和部分结果,以及执行动态链接、方法返回值和异常信息的。
    每次方法的调用都会生成一个栈帧,然后将该栈帧进行压栈。当方法结束后,该栈帧将会出栈、被销毁。
    无论是正常结束还是异常结束。
    每个栈帧都是自己的局部变量表、操作数栈、以及对当前方法类的运行时常量池的引用。
    由当前线程创建的帧不能被其它线程引用。

    局部变量(Local Variables):

    每个栈帧包含一个叫局部变量的变量数组,它的长度在编译的时候确定。
    单个局部变量可以保存类型的值boolean,byte,char,short,int, float,reference,或returnAddress。一对局部变量可以包含类型long或值double。
    虚拟机使用局部变量在方法调用上传递参数。
    例如:当前栈帧中只有 int i = 3; 它就只占一个局部变量。

    操作数栈(Operand Stacks)

    每个帧包含一个(LIFO)后进先出的栈、称为操作数栈、栈的最大深度在编译时候确定。
    虚拟机指令将局部变量或者常量值压栈到操作数栈中、其它虚拟机指令取出它们,最它们进行操作、将结果再压栈到操作数栈中。
    例如:后缀表达式求值
    1 * 2 + 3 写成后缀表达式就是 1 2 * 3 +
    1 先入栈 2 再入栈 当到*号时、弹出1、2进行乘操作 将结果2压栈
    然后3再压栈 当到+时、将3、2弹栈、计算结果为5再压栈

    动态链接(Dynamic Linking)

    每个栈帧都包含对运行时常量池的引用,

    转载于:https://www.cnblogs.com/evildoerdb/p/10415952.html

    展开全文
  • 计算机相关的名词解释

    千次阅读 2020-01-19 00:36:49
      当我们参考计算机系统或...本篇文章将介绍这些常用名词的含义以及实际用途(名词解释部分来自网络或相关书籍)。 目录参考: ARM ASIC BIOS CPU DMA DSP DTE Flash Memory GPIO GPU Interrupt LCDC MCU MIPS M...

      当我们参考计算机系统或驱动相关书籍时,书中通常会提起一些缩写名词,比如:BIOS、MMU、DSP、DMA、MIPS等,它们具体表示什么呢?本篇文章将介绍这些常用名词的含义以及实际用途(名词解释部分来自网络或相关书籍)。

    目录参考:

    ARM
    ASIC
    BIOS
    CPU
    DMA
    DSP
    DTE
    Flash Memory
    GPIO
    GPU
    Interrupt
    LCDC
    MCU
    MIPS
    MMU
    PCB
    PCB(2)
    PCI
    PCIe
    PCU
    PLC
    RAM
    ROM
    RISC
    SoC
    SPI
    UART

    相关内容:


    ARM:

      Advanced RISC Machine,ARM架构更早称作Acorn RISC Machine,是一个32位精简指令集(RISC)处理器架构。ARM处理器本身是32/64位设计,但也配备16位指令集,ARM处理器广泛使用在嵌入式系统设计,低耗电节能,非常适用移动通讯领域。


    ASIC:

      application-specific integrated circuit,专用集成电路。ASIC是为特殊应用而设计的微芯片,例如特定类型的传输协议或手持计算机。 目前用CPLD(复杂可编程逻辑器件)和 FPGA(现场可编程逻辑阵列)来进行ASIC设计是最为流行的方式之一,它们的共性是都具有用户现场可编程特性,都支持边界扫描技术,但两者在集成度、速度以及编程方式上具有各自的特点。


    BIOS:

      Basic Input Output System,基本输入输出系统。BIOS代表基本的输入输出系统,是存储在主板上一个小内存芯片上的软件。BIOS负责POST(POST,简称开机自检,是初始设置它的上电后,是否通过计算机进行正确的诊断测试的硬件相关的问题),因此它是计算机启动时运行的第一个软件。
    BIOS 固件是非易失性的,这意味着即使从设备上断开电源,其设置也可以保存并恢复。


    CPU:

      Central Processing Unit,称为处理器,中央处理器或微处理芯片,是计算机的中央处理单元。计算机的CPU处理从计算机上运行的硬件和软件收到的所有指令。


    DMA:

      Direct Memory Access,直接存储器(内存)访问,又称直接存储芯片。DMA是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。


    DSP:

      Digital Signal Processing,数字信号处理技术,又称数字信号处理芯片。DSP利用数字处理,如由计算机或更专业的数字信号处理器,来执行各种各样的信号处理操作。以这种方式处理的数字信号是一组数字序列,表示时间、空间或频率等域中连续变量的样本。在数字电子学中,数字信号表示为脉冲串,它通常由MOSFET(金属氧化物半导体场效应晶体管)开关产生。


    DTE:

      Data Terminal Equipment,数据终端设备。DTE是数据通信系统中的端设备或端系统。它可以是一个数源(信号的发起者),也可以是一个数宿(信号的接受者),或者两者都是数据终端设备,通过数据通信设备连接到一个数据网络上,并使用数据通信设备产生的时钟信号。


    Flash Memory:

      Flash Memory,快闪存储器。Flash Memory是一种非易失性存储芯片,用于存储以及在个人计算机(PC)和数字设备之间传输数据。它具有电子重新编程和擦除的功能。 Flash Memory既可以替代“可编程只读存储器(EEPROM)”使用,也可以是一个独立的存储设备,如USB驱动器。


    GPIO:

      General-purpose input/output,通用输入/输出。GPIO是集成电路或电子电路板上未提交的数字信号引脚,用于将微控制器连接到其他电子设备的标准接口。例如,它可以与传感器,二极管,显示器和片上系统模块一起使用。实际操作时,GPIO一般由硬件触发并通过驱动写入或获取值,比如:键盘驱动根据GPIO状态判断出具体按键并上报状态。


    GPU:

      Graphics Processing Unit,称为图形处理器,图形处理单元。GPU是执行快速数学计算的计算机芯片,主要用于渲染图像。在计算的早期,CPU执行了这些计算。但是,随着更多图形密集型应用程序(例如AutoCAD)的开发,它们的需求给CPU带来压力,并降低性能。GPU的出现是一种从CPU分担这些任务并释放处理能力的方法。


    Interrupt:

      Interrupt,一般称为中断。中断是提供多进程多任务处理的操作系统的功能。中断是一个信号,它提示操作系统停止一个进程的工作并开始另一个进程的工作。中断的概念是现代操作系统设计的核心。从本质上讲,操作系统是线性的,在任何给定时间都不能处理多个计算任务。但是,随着现代操作系统变得更加先进,工程师和开发人员已经包括了中断功能,以通过切入和切出各种任务来帮助操作系统处理许多不同的程序。


    LCDC:

      Liquid Crystal Display controller或LCD controller,液晶显示控制器。LCDC主要由时序发生模块、帧存控制模块和图像处理模块组成。LCDC主要负责从内存或者FIFO通道中获取图像/视频数据,以一定的方式叠加、混合,将一帧图像送出到外部液晶显示器去显示。


    MCU:

      Microcontroller Unit,微控制单元,又称单片微型计算机(Single Chip Microcomputer )或者单片机。通过把CPU的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。


    MIPS:

      Microprocessor without interlocked piped stages architecture,亦为Million Instructions Per Second(每秒百万指令)的双关语。MIPS是一种采取精简指令集(RISC)的处理器架构。


    MMU:

      Memory Management Unit,内存管理单元。MMU是处理其虚拟内存和缓存操作的物理硬件。MMU通常位于计算机的中央处理单元(CPU)中,但有时在单独的集成芯片(IC)中运行。所有数据请求输入都发送到MMU,后者进而确定是否需要从RAM或ROM存储器中检索数据。
    内存管理单元也称为分页内存管理单元。


    PCB:

      Printed Circuit Board,印制电路板,又称印刷线路板,是重要的电子部件,是电子元器件的支撑体,是电子元器件电气连接的载体。由于它是采用电子印刷术制作的,故被称为“印刷”电路板。


    PCB(2):

      Process Control Block,进程控制块。PCB是系统为了管理进程设置的一个专门的数据结构,它是进程实体的一部分,是操作系统中最重要的记录性数据结构。系统用它来记录进程的外部特征,描述进程的运动变化过程。同时,系统可以利用PCB来控制和管理进程,所以说,PCB是系统感知进程存在的唯一标志。


    PCI:

      Peripheral Component Interconnect,外部设备互连。PCI是一种由英特尔(Intel)公司1991年推出的用于定义局部总线的标准。此标准允许在计算机内安装多达10个遵从PCI标准的扩展卡。最早提出的PCI总线工作在33MHz频率之下,传输带宽达到132MB/s(33MHz * 32bit/8),基本上满足了当时处理器的发展需要。随着对更高性能的要求,后来又提出把PCI 总线的频率提升到66MHz,传输带宽能达到264MB/s。


    PCIe:

      peripheral component interconnect express,简称PCI-Express或PCI-e,外部设备快速互连。PCI-Express是一种高速串行计算机扩展总线标准,它原来的名称为“3GIO”,是由英特尔在2001年提出的,旨在替代旧的PCI,PCI-X和AGP总线标准。PCI-Express也有多种规格,从PCI Express x1到PCI Express x32,能满足将来一定时间内出现的低速设备和高速设备的需求。


    PCU:

      Packet Control Unit,分组控制单元,又称包控制单元。PCU在移动通讯GPRS网络中,用来处理数据业务量,并将数据业务量从GSM话音业务量中分离出来。


    PLC:

      Programmable Logic Controller,可编程逻辑控制器。PLC用于工业自动化的坚固型计算机。这些控制器可以自动化特定的过程,机器功能,甚至整个生产线。


    RAM:

      Random Access Memory,随机存取存储器。RAM是一种非常快速的计算机内存,可以暂时存储您现在和不久的将来PC所需的所有信息。RAM是台式机、笔记本电脑、平板电脑、智能手机和游戏机的最重要组件之一。没有它,几乎不可能在任何系统上执行任何操作。


    ROM:

      Read-only memory,只读存储器。ROM是计算机和其他电子设备中的一种数据存储形式,无法轻易更改或重新编程。ROM处于非易失性状态,即使关闭电源后内容也会保留。


    RISC:

      Reduced Instruction Set Computing,精简指令集。RISC是一种微处理器体系结构,它利用少量的,高度优化的指令集,而不是其他类型体系结构中经常出现的更为专门的指令集。


    SoC:

      System on Chip,称为芯片级系统,即片上系统。SoC身上也会体现出“集成电路”与“芯片”之间的联系和区别,其相关内容包括集成电路的设计、系统集成、芯片设计、生产、封装、测试等等。跟“芯片”的定义类似,SoC更强调的是一个整体,在集成电路领域,给它的定义为:由多个具有特定功能的集成电路组合在一个芯片上形成的系统或产品,其中包含完整的硬件系统及其承载的嵌入式软件。


    SPI:

      Serial Peripheral Interface,串行外设接口。SPI是微控制器系统中常见的一种通信协议。它设计为一种高速全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,传感器、液晶显示器和存储卡是使用SPI设备的示例。


    UART:

      Universal Asynchronous Receiver/Transmitter,通用异步接收器/发送器。UART是带有编程的微芯片,用于控制计算机与其所连接的串行设备的接口。特别是,它为计算机提供了RS-232C数据终端设备(DTE)接口,以便它可以与调制解调器和其他串行设备“对话”并交换数据。

    展开全文
  • JavaScript名词解释

    2020-01-07 18:45:14
    大家好,欢迎观看JavaScript教程(二、JavaScript名词解释) 一、script标签: script标签表示脚本,可以在script标签中编写js代码,另外可以通过 script的src属性可以引入外部脚本文件。 <script src="js/...

    大家好,欢迎观看JavaScript教程(二、JavaScript名词解释)

    一、script标签:
    script标签表示脚本,可以在script标签中编写js代码,另外可以通过
    script的src属性可以引入外部脚本文件。

    <script src="js/diZhi.js"></script>
    

    注意:script可以写在html任意位置,一般写在body标签的最后面。

    二、JavaScript中的行:
    JavaScript中line(行) 以;为单位结束
    一行代码就是一个语句

    console.log("你好");
    

    代码也可以写在同一行,但不推荐这样写

    console.log("你好");console.log("我好");
    

    三、JavaScript中的变量:
    变量:可以改变的量叫变量,不可以改变的量叫常量。
    变量的实质:在内存中申请一块属于自己的内存,名字是:变量的名字
    语法:声明 变量 = 值;(一般用var声明)
    例子:

    var name = "你叫什么名字";
    console.log(name);
    

    将变量的声明和赋值写在一起的方式叫做变量的初始化
    var c = name; 变量的初始化。
    也可以用先声明变量后赋值
    var c; 声明变量
    c = 10; 赋值变量
    注意:变量必须要先声明才能使用,否则报错

    展开全文
  • Java名词解释

    2019-07-14 12:08:24
    名词解释 1、JDK,JRE,JVM JDK:Java开发工具包(Java Development Kit),给开发人员用的。 JRE:Java运行环境(Java Runtime Environment),运行Java程序用的。 JVM:Java虚拟机(JVM Java Virtual Machine),...

    名词解释

    1、JDK,JRE,JVM

    JDK:Java开发工具包(Java Development Kit),给开发人员用的。

    JRE:Java运行环境(Java Runtime Environment),运行Java程序用的。

    JVM:Java虚拟机(JVM Java Virtual Machine),对于不同的平台,有不同的虚拟机。Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。

    2、环境变量

    (1)path

    path环境变量是操作系统运行工具(执行命令)时要所属的目录路径。

    path = D:\ProgramFiles\Java\jdk1.8.0_141\bin;
    

    当我们运行javac.exe,java.exe,javadoc.exe等需要用到path环境变量。

    当我们运行eclipse这样的IDE开发工具时,也会用到path环境变量,因为运行eclipse需要用到javaw.exe工具。

    (2)JAVA_HOME

    如果只是进行JavaSE开发,只需要配置path环境变量就行了。

    如果要进行JavaEE开发,需要用到tomcat服务器,就需要配置JAVA_HOME环境变量了。

    JAVA_HOME = D:\ProgramFiles\Java\jdk1.8.0_141
    

    如果配置了JAVA_HOME环境变量,path就可以配置为:

    path = %JAVA_HOME%\bin;
    

    3、编辑、源文件,源代码(edit source code)

    源文件:.java文件,存储Java源代码的文件

    源代码:就是写好的Java代码

    写代码,就是编辑源文件,即程序员把代码写到.java的源文件中

    4、编译、字节码文件(class file)

    字节码文件:.class文件,由Java源代码编译后生成的.class文件,可以被JVM读取和执行的文件。

    5、运行(run)

    运行Java程序,其实就是执行.class字节码文件,由JVM把字节码数据再转为二进制的机器指令执行。

    6、数据类型(data type)

    Java的数据类型有基本数据类型和引用数据类型。

    基本数据类型:8种,byte,short,int,long,float,double,char,boolean

    引用数据类型:类、接口、枚举、数组、注解

    7、变量(variable)

    (1)变量是用来存储数据或对象地址的。

    (2)变量根据数据类型的不同分为基本数据类型的变量和引用数据类型的变量。

    //基本数据类型的变量
    int a = 10;  //a中存的是值10
    
    //引用数据类型(数组)的变量
    int[] arr = {5,2,8,9};  //arr中存的是数组对象的地址
    
    //引用数据类型(类)的变量
    Student stu = new Student("张三",23);  //stu中存的是学生对象的地址
    
    //引用数据类型(枚举)的变量
    enum Season{
        SPRING,SUMMER,FALL,WINTER
    }
    Season spring = Season.SPRING;  //spring中存储的是季节枚举常量对象SPRING的地址
    
    //引用数据类型(接口)的变量
    interface Flyable{
        void fly();
    }
    class Bird implements Flyable{
        public void fly(){}
    }
                    
    Flyable f = new Bird();  //f变量中存储的是Bird对象的地址
    

    (3)变量根据声明位置不同分为成员变量和局部变量

    (A)局部变量声明位置:

    ①方法的形参列表

    ②方法体{}中

    ③代码块{}中

    成员变量声明位置:类中,方法和代码块外面,按照是否有static修饰分为:类变量(静态变量) 和 实例变量(非静态变量)

    (B)内存存储的位置不同

    局部变量:栈

    成员变量:

    ​ 实例变量:堆

    ​ 类变量:方法区

    (C)生命周期

    局部变量:

    ​ 每一个线程每一次调用都是一次新的生命周期

    成员变量:

    ​ 实例变量:每一个对象的成员变量是独立的,和对象的生命周期一致

    ​ 类变量:和类的生命周期一致

    (D)作用域

    局部变量:作用域非常小,从声明它的位置开始,到它所属的}结束,可能只属于某个if,for,方法等

    成员变量:

    ​ 类变量:整个类中

    ​ 实例变量:整个类中除了静态方法和静态代码块中不能使用

    (E)修饰符

    局部变量:唯一可以有的修饰符是final

    成员变量:权限修饰符、static、final、…

    8、运算符(operate)

    在程序中要做运算,需要用到运算符:

    适用于基本数据类型的运算符

    (1)算术运算符

    加法:+

    减法:-

    乘法:*

    除法:/

    注意:整数与整数相除,只保留整数部分

    取模:% 取余

    注意:取模结果的正负号只看被模数

    正号:+

    负号:-

    自增:++

    自减:–

    原则:自增与自减

    ++/–在前的,就先自增/自减,后取值

    ++/–在后的,就先取值,后自增/自减

    (2)赋值运算符

    基本赋值运算符:=

    扩展赋值运算符:+=,-=,*=,/=,%=…

    注意:所有的赋值运算符的=左边一定是一个变量,而且先算右边,然后最后把值赋值给左边的变量

    扩展赋值运算符=右边的计算结果的类型如果比左边的大的话会强制类型转换,所以结果可能有风险。

    (3)比较运算符

    大于:>

    小于:<

    大于等于:>=

    小于等于:<=

    等于:==

    不等于:!=

    注意:比较表达式的运算结果一定只有true/false

    (4)逻辑运算符

    逻辑与:&
    只有左右两边都为true,结果才为true。
    true & true 结果为true
    false & true 结果为false
    true & false 结果为false
    false & false 结果为false
    逻辑或:|
    只要左右两边有一个为true,结果就为true。
    true | true 结果为true
    false | true 结果为true
    true | false 结果为true
    false | false 结果为false
    逻辑异或:^
    只有左右两边不同,结果才为true。
    true ^ true 结果为false
    false ^ true 结果为true
    true ^ false 结果为true
    false ^ false 结果为false

    逻辑非:!
    布尔值取反
    !true 为false
    !false 为true

    短路与:&&
    只有左右两边都为true,结果才为true。
    true & true 结果为true
    true & false 结果为false
    false & ? 结果就为false
    它和逻辑与不同的是当&&左边为false时,右边就不看了。

    短路或:||
    只要左右两边有一个为true,结果就为true。
    true | ? 结果为treu
    false | true 结果为true
    false | false 结果为false
    它和逻辑或不同的时当||左边为true时,右边就不看了。

    (5)条件运算符

    条件表达式 ? 结果表达式1 : 结果表达式2

    当条件表达式的结果为true时,整个表达式的结果就取“结果表达式1"的值,否则就取”结果表达式2“的值。

    (6)位运算符

    前提:所有的位运算符的规则都是用数字的二进制补码形式进行运算的

    左移:<<

    ​ 实际运算规则,把这个数的二进制往左移动几位,右边补0

    ​ 快速计算方式:左移几位就是乘以2的几次方

    右移:>>

    ​ 实际运算规则,把这个数的二进制往右移动几位,左边补0或1,看最高位

    ​ 快速计算方式:右移几位就是除以2的几次方

    无符号右移:>>>

    ​ 实际运算规则,把这个数的二进制往右移动几位,左边一律补0

    按位与:&

    ​ 实际运算规则,把两个数的二进制一一对应,对应位按位与。

    ​ 1 & 1是1

    ​ 1 & 0是0

    ​ 0 & 1是0

    ​ 0 & 0是0

    按位或:|

    ​ 实际运算规则,把两个数的二进制一一对应,对应位按位或。

    ​ 1 & 1是1

    ​ 1 & 0是1

    ​ 0 & 1是1

    ​ 0 & 0是0

    按位异或:^

    ​ 实际运算规则,把两个数的二进制一一对应,对应位按位或。

    ​ 1 & 1是0

    ​ 1 & 0是1

    ​ 0 & 1是1

    ​ 0 & 0是0

    按位取反:~

    ​ 实际运算规则,把某个数的二进制,按位取反

    ​ 1变成0, 0变成1

    注意:包括最高位也会取反,这个和从原码到反码是不一样的。

    (7)运算符优先级

    在这里插入图片描述

    适用于引用数据类型的运算符

    (1)基本赋值运算符

    引用数据类型 变量名 = 对象;
    

    (2)比较运算符

    对象1 == 对象2    //比较的是地址,而且对象1和对象2的类型要一致或者是父子类关系,否则编译不通过
    对象1 != 对象2
    

    (3)instanceof

    对象  instanceof 类型 
    //只有当该对象属于这个类型才会返回true,而且要求该对象的编译时类型必须与要判断的类型一致或有父子类关系
    
    public class Test {
    	public static void main(String[] args) {
    		Animal a = new Animal();
    		Animal s = new Student();
    		Animal t = new Teacher();
    		Person p = new Student();
    		Teacher t2 = new Teacher();
    		
    		System.out.println(a instanceof Animal);//true
    		System.out.println(s instanceof Animal);//true
    		System.out.println(s instanceof Person);//true
    		System.out.println(s instanceof Student);//true
    		System.out.println(s instanceof Teacher);//false
    		System.out.println(p instanceof Animal);//true
    		System.out.println(p instanceof Person);//true
    		System.out.println(p instanceof Student);//true
    		System.out.println(t instanceof Student);//false
    //		System.out.println(t2 instanceof Student);//编译错误
    	}
    }
    class Animal{
        
    }
    class Person extends Animal{
        
    }
    class Student extends Person{
        
    }
    class Teacher extends Person{
        
    }
    

    (4).运算符

    引用数据类型的类型或对象,可以通过.来访问属性、方法等。

    //数组对象.属性
    int[] arr = new int[5];
    System.out.println(arr.length);//通过数组名来访问数组对象的长度属性,数组名.length
    
    //对象.属性或方法
    Student stu = new Student("张三",23);
    System.out.println(stu.name);//如果name属性可见的话
    System.out.println(stu.getName());
    
    //类名.静态成员
    Arrays.sort(数组名)double rand = Math.random();
    System.out.println(Math.PI);
    

    (5)()运算符

    ()用于强制类型转换或优先计算强制类型转换

    class A{
    	int x = 10;
    }
    class B extends A{
        int x = 20;
    }
    
    A a = new B();
    B b = (B)a;//强制类型转换
    int x = ((B)a).x;//强制类型转换和优先计算强制类型转换
    

    9、流程控制语句结构(statement)

    流程:解决问题的步骤

    控制语句结构:

    ​ (1)顺序语句:顺序结构

    ​ (2)分支语句:选择其中一个分支执行

    ​ (3)循环语句:重复执行某些代码

    10、数组(array)

    凡是有[]的都是数组

    数据类型[] 数组名 = {元素列表};
    数据类型[] 数组名 = new 数据类型[]{元素列表};
    数据类型[] 数组名 = new 数据类型[长度];
    

    11、类(class)

    使用class声明的类型都是类

    【修饰符】 class 类名 【extends 父类】 【implements 父接口们】{
        
    }
    

    类中可以包含5个部分:

    (1)成员变量:

    ​ 静态成员变量:存储类共享数据

    ​ 非静态成员变量:存储对象独立数据

    (2)成员方法:完成功能

    (3)构造器:创建对象,是实例初始化的一部分

    (4)代码块:

    ​ 静态代码块:类初始化的一部分

    ​ 非静态代码块:实例初始化的一部分

    (5)成员内部类/成员内部接口:为外部类服务

    12、接口(interface)

    使用interface声明的类型都是接口

    【修饰符】 interface 接口 【extends 父接口们】{
        
    }
    

    接口中的成员有限制要求:

    JDK1.8之前:

    ​ (1)公共的静态的常量:public static final

    ​ (2)公共的抽象方法:public abstract

    JDK1.8之后,增加了:

    ​ (3)公共的静态方法:public static

    ​ (4)公共的默认方法:public default

    13、枚举(enum)

    使用enum声明的类型都是枚举

    【修饰符】 enum 枚举类型名 【implements 父接口们】{
    }
    

    枚举是一种特殊的类:

    (1)枚举的首行必须是枚举的常量对象列表;

    (2)枚举的构造器都是private

    (3)枚举的直接父类一定是java.lang.Enum类

    14、注解(annotation)

    使用@interface声明的类型都是注解,只要使用@标记符的都是注解

    @元注解
    【修饰符】 @interface 注解名{
        【配置参数】
    }
    

    示例:

    @Override
    @SuppressWarnings(...)
    @Deprecated
    @Test
    @WebServlet(...)
    @Table(...)
    @Transactional(...)
    @Target(...)
    @Retention(...)
    @Documented
    @Inherited
    

    注解中可以声明配置参数:

    @元注解
    【修饰符】 @interface 注解名{
        数据类型  参数名(); 
        数据类型  参数名() default 默认值;
    }
    

    (1)如果注解有配置参数,那么在使用时,需要给配置参数赋值,除非有默认值

    (2)给配置参数赋值的标准格式:参数名 = 参数值,但是如果注解的配置参数只有一个,而且名称是value,那么在赋值时可以省略value=

    (3)如果配置参数是数组类型,那么赋值时可以用“{多个值}”

    15、参数(param,args)

    参数:

    ​ 设计者在实现一个功能时,发现有些数据是变化的,不确定的,应该有使用者来指定,那么就设计了参数,所以参数就是一种传递数据的方式,所以参数就是一个变量,具有特殊作用的特殊位置的变量。

    和参数相关的几个名词:

    ​ (1)形参(formal parameter)

    ​ (2)实参(actual parameter)

    ​ (3)有参(has parameter)

    ​ (4)无参(no parameter)

    ​ (5)命令行参数(command line parameter/ arguments)

    ​ (6)可变参数(variable parameter)

    ​ (7)类型参数(type parameter,generic Type)

    ​ (8)类型形参(type parameter)

    ​ (9)类型实参(type arguments)

    ​ (10)传参(pass parameter)

    (1)形参(formal parameter)

    在声明方法时()中的参数

    【修饰符】 返回值类型  方法名(形参列表)throws 异常列表{
        
    }
    【修饰符】  构造器名(形参列表)throws 异常列表{
        
    }
    

    (2)实参(actual parameter)

    在调用方法时()中的参数,实参是给形参赋值的,所以实参的个数、类型、顺序必须与形参一一对应。

    类名.静态方法(实参列表);
    对象名.实例方法(实参列表);
    
    new 构造器名(实参列表);
    
    this(实参列表);
    super(实参列表);
    

    (3)有参(has parameter)

    声明方法时有形参列表,调用方法时有实参列表

    //声明时
    【修饰符】 返回值类型  方法名(形参列表)throws 异常列表{
        
    }
    【修饰符】  构造器名(形参列表)throws 异常列表{
        
    }
    
    //调用时
    类名.静态方法(实参列表);
    对象名.实例方法(实参列表);
    
    new 构造器名(实参列表);
    
    this(实参列表);
    super(实参列表);
    

    (4)无参(no parameter)

    声明方法时没有形参列表,调用方法时没有实参列表

    //声明时:
    【修饰符】 返回值类型  方法名()throws 异常列表{
        
    }
    【修饰符】  构造器名()throws 异常列表{
        
    }
    
    //调用时:
    类名.静态方法();
    对象名.实例方法();
    
    new 构造器名();
    
    this();
    super();
    

    (5)命令行参数(command line parameter/ arguments)

    运行main时,给main传的参数

    java 类名  命令行参数1  命令行参数2 ....
    

    在main中如何使用命令行参数值呢?

    public static void main(String[] args){
        for(int i=0; i<args.length; i++){
            //...
        }
    }
    

    (6)可变参数(variable parameter):

    可变参数的声明:

    【修饰符】 返回值类型  方法名(【非可变参数部分的形参列表,】 可变参数类型... args)throws 异常列表{
        
    }
    

    可变参数在声明它的方法中如何使用?

    【修饰符】 返回值类型  方法名(【非可变参数部分的形参列表,】 可变参数类型... args)throws 异常列表{
        for(int i=0; i<args.length; i++){//可变参数部分当做数组使用
            //...
        }
    }
    

    调用带可变参数的方法时语法格式:

    类名.静态方法(非可变参数部分的实参列表, 0~n个可变参数实参值);
    对象名.实例方法(非可变参数部分的实参列表, 0~n个可变参数实参值);
    
    或
    类名.静态方法(非可变参数部分的实参列表, 对应可变参数类型的数组对象);
    对象名.实例方法(非可变参数部分的实参列表, 对应可变参数类型的数组对象);
    

    (7)类型参数(type parameter,generic Type)

    凡是代码中出现在<>中的类型,就是类型参数。

    (8)类型形参(type parameter)

    常见:,,<T,U>,<K,V>,<T,R>等

    在声明类/接口声明的类型参数,也称为泛型形参:

    【修饰符】 class 类名/接口<类型形参列表>{
        
    }
    
    【修饰符】 class 类名/接口<类型形参1 extends 父类上限>{
        
    }
    【修饰符】 class 类名/接口<类型形参1 extends 父类上限 & 父接口上限>{
        
    }
    

    或在声明方法时声明的类型参数,也称为泛型形参:

    【修饰符】 <泛型形参列表>  返回值类型  方法名(【数据形参列表】)【throws 异常列表】{}
    【修饰符】 <泛型形参 extends 父类上限 & 父接口上限>  返回值类型  方法名(【数据形参列表】)【throws 异常列表】{}
    

    代码示例:

    public interface Iterable<T>{
    	Iterator<T> iterator();
    }
    
    public interface Comparable<T>{
        int compareTo(T t);
    }
    
    public class ArrayList<E>extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, Serializable{
        public boolean add(E e){
            ...
        }
        public E get(int index){
            ...
        }
        ...
    }
    
    public class Arraysextends Object{
        public static <T> List<T> asList(T... a){
            //...
        }
        public static <T> T[] copyOf(T[] original,int newLength){
            //...
        }
        public static <T> void sort(T[] a, Comparator<? super T> c){
            //...
        }
    }
    
    

    (9)类型实参(type arguments)

    在使用泛型类/接口时指定泛型实参

    代码示例:

    ArrayList<String> list = new ArrayList<String>();
    
    ArrayList<String> list = new ArrayList<>();//JDK1.7之后可以省略
    
    class Employee implements Comparable<Employee>{
        public int compareTo(Employee e){
            
        }
    }
    
    Arrays.sort(数组,  new  Comparator<泛型实参>(){
        public int compare(泛型实参类型  o1, 泛型实参类型  o2){
            
        }
    });
    

    (10)传参(pass parameter)

    凡是实参给形参赋值都是叫做传参。

    记住:实参与形参的类型、个数、顺序一一对应即可。

    16、异常(Exception)

    1、以下情况不属于异常:

    (1)语法错误

    如果有语法错误,编译时不通过的

    (2)逻辑错误

    如果有逻辑错误,是无法正确解决问题的,即无法正确实现功能

    2、Java异常和错误的根父类:java.lang.Throwable

    (1)只有是这个类或它的子类的对象,才能被JVM或throw语句“抛”出

    (2)也只有这个类或它的子类的对象,才能被catch给“捕获”

    (3)如果用户需要自定义异常,那么必须继承Throwable或它的子类。

    3、Java异常的分类
    Java异常的分类:
    Error:错误,合理的应用程序不应该试图捕获的异常。
    Exception:异常,合理的应用程序应该、想要捕获的异常。
    Java异常的分类:
    运行时异常(非受检异常):RuntimeException及其子类,编译器不会提示你需要加try…catch处理
    编译时异常(受检异常):RuntimeException系列以外的,编译器一定会要求你加try…catch处理的

    4、列出常见的异常类型:
    NullPointerException(空指针异常)、
    ClassCastException(类型转换异常)、
    ArithmeticException(算术异常)
    IndexOutOfBoundsException(下标越界异常):
    ArrayIndexOutOfBoundsException(数组下标越界)、StringIndexOutOfBoundsException(字符串下标越界)等
    InputMismatchException(输入不匹配异常)
    NumberFormatException(数字格式异常)
    OutOfMerroyError:堆内存溢出错误
    StackOverflowError:栈内存溢出错误

    IOException
    FileNotFoundException
    SQLException

    5、不管是什么异常,最终都要进行处理,如果不处理,会导致程序终止运行

    6、解释try,catch,finally,throw,throws关键字的用法
    try:尝试执行某些代码,看是否会发生异常
    catch:尝试捕获某个异常,如果可以捕获,就处理它
    finally:无论try中是否有异常发生,也不管catch是否可以捕获这个异常,
    哪怕try或catch有return,都无法阻止我运行finally中的代码。
    throw:手动抛出异常对象
    throws:在方法声明时,显式的说明该方法会抛出xx异常,提醒调用者要处理这些异常。

    try…catch…finally语法格式

    try{
        可能发生异常的代码
    }catch(异常类型  e){
        处理异常的代码
    }catch(异常类型  e){
        处理异常的代码
    }...
    finally{
        一定要执行的代码
    }
    

    throw语法格式:

    throw 异常对象;
    

    throws语法格式

    【修饰符】 返回值类型  方法名(【形参列表】)throws 异常列表{
        
    }
    

    方法的重写的要求:

    (1)修饰符:>=

    (2)返回值类型

    ​ 基本数据类型和void:必须相同

    ​ 引用数据类型:<=

    (3)方法名:必须相同

    (4) 形参列表:必须相同

    (5)抛出的异常类型:<=

    (6)被重写的方法不能是:static,final,private等

    17、包装类

    Java是面向对象的语言,Java的很多特性和API都是为“对象”而设计的,例如:集合,泛型等,那么Java中的基本数据类型和void,都没办法使用,所以Java就为这些类型设计了包装类。

    包装类都有哪些?

    char ->Character

    byte -> Byte

    short -> Short

    int -> Integer

    long -> Long

    float -> Float

    double -> Double

    boolean -> Boolean

    void -> Void

    18、集合

    集合是一种容器,也可以说是一种数据结构,用来保存对象的。

    Map集合继承树

    在这里插入图片描述
    Collection集合继承树

    在这里插入图片描述

    19、多线程

    进程:它是程序的一次运行,是动态的。它是操作系统调度和分配资源的最小单位。

    线程:它是进程中的其中一条执行路径而已。如果一个进程只有一个线程,那么我们称为单线程程序,如果一个进程汇中有多个线程,那么我们称为多线程程序。线程是CPU调度最小单位。

    创建多线程的两种方式(JavaSE阶段)

    1、 继承Thread类

    步骤:

    (1)编写线程类,继承Thread类

    (2)必须重写public void run(){}

    (3)创建自定义线程类的对象

    (4)调用start()方法启动线程

    示例代码:

    	class MyThread extends Thread{
    		public void run(){
    			...
    		}
    	}
    	
    	MyThread my = new MyThread();
    	my.start();
    

    2、实现Runnable接口

    步骤:

    (1)编写线程类,实现Runnable接口

    (2)必须重写public void run(){}

    (3)创建自定义线程类的对象

    (4)通过Thread类的代理对象,调用start()方法启动线程

    示例代码:

    class MyRunnable implements Runnable{
    		public void run(){
    		}
    	}
    	MyRunnable my = new MyRunnable();
    	Thread t = new Thread(my);
    	t.start();
    

    20、线程安全问题

    1、什么情况下会有线程安全问题?
    多个线程使用了共享数据

    2、如何解决线程安全问题?
    SE阶段:synchronized

    (1)同步代码块

    synchronized(锁对象){
        在一个线程执行期间,不想要被其他线程打扰的代码,一般是一次事务的原子性操作。
    }
    

    锁对象:自选的,但是要保证使用共享数据的这多个线程必须共用一个锁对象(监视器对象)

    至于是否可以选用this作为锁对象,要看是否多个线程共用同一个this对象

    (2)同步方法

    【修饰符】 synchronized 返回值类型  方法名(【形参列表】){
    	在一个线程执行期间,不想要被其他线程打扰的代码,一般是一次事务的原子性操作。
    }
    

    锁对象:固定,非静态方法就是this,静态方法就是当前类的Class对象

    21、IO流

    IO流是用于数据输入与输出的相关API。

    1、四大超类

    (1)InputStream:字节输入流

    (2)OutputStream:字节输出流

    (3)Reader:字符输入流

    (4)Writer:字符输出流

    2、常见IO流

    (1)文件IO流

    FileInputStream:文件字节输入流,可以读取任意类型的文件

    FileOutputStream:文件字节输出流,可以把字节数据输出到任意类型的文件

    FileReader:文件字符输入流,只能读取纯文本的文件。按照平台默认的字符编码进行解码。

    FileWriter:文件字符输出流,只能把字符数据输出到纯文本文件。按照平台默认的字符编码进行编码。

    (2)缓冲IO流

    BufferedInputStream:字节输入缓冲流,给InputStream系列IO流增加缓冲效果
    BufferedOutputStream:字节输出缓冲流,给OutputStream系列IO流增加缓冲效果
    BufferedReader:字符输入缓冲流,给Reader系列IO流增加缓冲效果

    String readLine():按行读取

    BufferedWriter:字符输出缓冲流,给Writer系列IO流增加缓冲效果

    void newLine():输出换行符

    void flush()

    (3)编码与解码的转换流

    编码:OutputStreamWriter

    ​ 可以把字符流转为字节流输出,并且在转换的过程中,可以指定字符编码。

    解码:InputStreamReader

    ​ 可以把字节输入流转为字符输入流,并且在转换的过程中,可以指定字符编码。

    (4)数据IO流

    DataInputStream:允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。
    DataOutputStream:允许应用程序以适当方式将基本 Java 数据类型写入输出流中。

    它俩必须配对使用

    读的顺序要与写的顺序一致

    (5)对象IO流

    ObjectOutputStream:对象序列化,输出对象,把对象转为字节序列输出

    void writeObject(Object obj)

    ObjectInputStream:对象反序列化,读取对象,把字节序列重构成Java对象

    Object readObject()

    (6)打印流

    PrintStream和PrintWriter:println()和print()

    (7)文本扫描仪

    Scanner

    22、对象序列化

    ObjectOutputStream:对象序列化,输出对象,把对象转为字节序列输出

    void writeObject(Object obj)

    序列化需要注意哪些内容?

    (1)所有要序列化的对象的类型都必须实现java.io.Serializable接口

    如果对象的属性类型也是引用数据类型,那么也要实现java.io.Serializable接口

    (2)希望类的修改对象反序列化不产生影响,那么我们最后能够增加一个序列化版本ID

    private static final long serialVersionUID = 1L;

    (3)如果有些属性不想要序列化,可以加transient

    (4)如果某个属性前面有static修饰,也不参与序列化

    23、对象反序列化

    ObjectInputStream:对象反序列化,读取对象,把字节序列重构成Java对象

    Object readObject()

    字符输入缓冲流,给Reader系列IO流增加缓冲效果

    String readLine():按行读取

    BufferedWriter:字符输出缓冲流,给Writer系列IO流增加缓冲效果

    void newLine():输出换行符

    void flush()

    (3)编码与解码的转换流

    编码:OutputStreamWriter

    ​ 可以把字符流转为字节流输出,并且在转换的过程中,可以指定字符编码。

    解码:InputStreamReader

    ​ 可以把字节输入流转为字符输入流,并且在转换的过程中,可以指定字符编码。

    (4)数据IO流

    DataInputStream:允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。
    DataOutputStream:允许应用程序以适当方式将基本 Java 数据类型写入输出流中。

    它俩必须配对使用

    读的顺序要与写的顺序一致

    (5)对象IO流

    ObjectOutputStream:对象序列化,输出对象,把对象转为字节序列输出

    void writeObject(Object obj)

    ObjectInputStream:对象反序列化,读取对象,把字节序列重构成Java对象

    Object readObject()

    (6)打印流

    PrintStream和PrintWriter:println()和print()

    (7)文本扫描仪

    Scanner

    22、对象序列化

    ObjectOutputStream:对象序列化,输出对象,把对象转为字节序列输出

    void writeObject(Object obj)

    序列化需要注意哪些内容?

    (1)所有要序列化的对象的类型都必须实现java.io.Serializable接口

    如果对象的属性类型也是引用数据类型,那么也要实现java.io.Serializable接口

    (2)希望类的修改对象反序列化不产生影响,那么我们最后能够增加一个序列化版本ID

    private static final long serialVersionUID = 1L;

    (3)如果有些属性不想要序列化,可以加transient

    (4)如果某个属性前面有static修饰,也不参与序列化

    23、对象反序列化

    ObjectInputStream:对象反序列化,读取对象,把字节序列重构成Java对象

    Object readObject()

    展开全文
  • C++常用名词解释汇总

    千次阅读 2018-03-04 16:58:02
    C++常用名词解释汇总new运算符:对象创建的操作符。delete运算符:对象释放操作符,触发析构函数。内存泄露:操作堆内存时,如果分配了内存,就有责任回收它,否则这块内存就无法重新使用,称为内存泄漏。自动变量:...
  • C++名词解释

    千次阅读 2017-07-12 11:35:44
    C++名词解释 1. 保留字reserved word  C++中,保留字也称关键字,它是预先定义好的标识符。见关键字的解释。2.关键字key word  C++中已经被系统定义为特殊含义的一类标识符。C++中的关键字有: auto double ...
  • JS名词解释

    2019-03-30 22:35:35
    1、语句:JavaScript程序的执行单位为行(line), 语句以分号结尾。一般情况下,每一行代码就是一...2、变量:值可以改变的量 var num = 10;//既声明又赋值 变量的初始化 var num1;//变量的声明 num1 = 20;//变...
  • 数据分析常用名词解释

    千次阅读 2020-01-09 09:13:32
    1、互联网常用名词解释 2、统计学名词解释 3、数据分析名词解释 一、互联网常用名词解释 1、PV(Page View)页面浏览量 指某段时间内访问网站或某一页面的用户的总数量,通常用来衡量一篇文章或一次活动带来的流量...
  • java基础--名词解释汇总

    千次阅读 多人点赞 2017-06-01 16:05:46
    下面为大家汇总了Java名词解释大全,希望对同学们学习java有帮助!  面向对象:面向对象程序设计(Object-Oriented Programming)是一种起源于六十年代,发展已经将近三十年的程序设计思想。其自身理论已十分完善...
  • Java名词解释

    千次阅读 2016-08-21 21:27:28
    Java名词解释: Abstract class 抽象类:抽象类是不允许实例化的类,因此一般它需要被进行扩展继承。 Abstract method 抽象方法:抽象方法即不包含任何功能代码的方法。 Access modifier...
  • Java名词解释(第1弹) 如有更好的解释,请评论提出,转载请注明出处 类 是对一类对象的描述,是面向对象程序设计的基本结构,包含数据域和操作这些数据的机制。 对象 对象是在其类模型基础上构造出的,是类的具体的...
  • Python名词解释

    2019-09-18 20:53:55
    不过,对于上下文变量来说,一个执行线程中可能会有多个上下文,而上下文变量的主要用途是对并发异步任务中变量进行追踪。 参见 contextvars。 contiguous -- 连续 一个缓冲如果是 C 连续 或 Fortran 连续 ...
  • 名词解释bootloader

    2015-02-06 13:42:21
    Bootloader概述  Bootloader的种类  Bootloader的启动  ...通过这段小程序,我们可以初始化硬件设备、建立内存内存 的供应商空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。 Bo
  • 操作系统名词解释

    千次阅读 2016-10-12 23:46:05
    第1部分 操作系统概论名词解释 脱机输入/输出 具体的输入/输出不需要在主计算机上进行的方式也称“脱机输入/输出” 批处理 作业是由操作系统成批地进行处理,操作系统能自动地从输入池读入下一个作业,并予以...
  • 大数据的75个名词解释

    万次阅读 2017-08-01 14:37:52
    内存计算就是这样的技术,它把所有的工作数据集都移动到集群的集体内存中,避免了在计算过程中向磁盘写入中间结果。Apache Spark 就是一个内存计算的系统,它相对 Mapreduce 这类 I/O 绑定的系统具有很大的优势。 ...
  • 【C#】基础名词解释

    千次阅读 热门讨论 2015-10-25 13:36:06
    C#里的基础名词解释
  • 名词解释

    千次阅读 2006-11-02 09:22:00
    参数数列能够使多个相关的参数被单个数列代表,换就话说,参数数列就是变量的长度。 void F(params int[] args){} static void Main() {  F();  F(1);  F(1, 2);  F(1, 2, 3);  F(new int[] {1, 2, 3, 4}...
  • os名词解释

    千次阅读 2016-06-16 01:36:44
    临界区:每个进程都有一个代码段称为临界区,在该区中进程可能改变共同变量,更新一个表,写一个文件等。临界区满足下列三个要求有空让进,互斥有限等待 设备目录:设备目录记录分区上所有文件的各种信息:如名称...
  • c++名词解释

    2012-12-23 13:21:37
    见关键字的解释。 2.关键字:C++中已经被系统定义为特殊含义的一类标识符。 3.标识符:对变量、函数、标号和其它各种用户自定义对象的命名。在C++中,标识符长度没有限制,第一个字符必须是字母或下划线,其后若...
  • 简单说说几个名词解释:(c++ primer 第五版) 1. 内存池、自由空间、堆内存 其实是同一种概念的不同叫法。 编译器分配的内存,一般在全局存储区,要么在栈内存等。 堆内存,是程序员自己分配的内存,比如运算符 ...
  • 操作系统名词解释5

    2020-02-24 08:37:31
    计算机最主要的三大性能指标RISC指令系统的最大特点是稳定的存储器在一个多线程的进程中,线程之间可以共享如下哪些资源寄存器堆、栈、全程变量、 I/O端口引导系统引导程序虚拟机保护域原语原子操作(automic ...
  • oracle名词解释

    2007-09-20 13:12:00
    oracle名词解释 §2.1 术语 l 数据库块(BLOCK) ORACLE 数据库中的最小存储和处理单位,包含块本身的头信息数据或PL/SQL代码。 ORACLE 块的大小是可以在安装时选择“自定义安装”来指定,也可以在CREATE DATABASE...
  • 数据结构名词解释以及简答

    千次阅读 多人点赞 2020-05-20 23:28:52
    名词解释: 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合,是计算机存储和数据组织的方式,它分为三个方面,即数据的逻辑结构,数据的物理结构,数据的操作。 数据项:是数据不可分割的最小单位...
  • TensorFlow常见名词解释

    2019-09-30 16:58:41
    variables_initializer()是初始化变量的子集,相比于全部初始化化的方式更加节约内存;Variable()是初始化单个变量,函数的参数便是要初始化的变量内容。 需要保存变量的中间结果可以使用save()方法,保存的内容是从...
  • 图形学名词解释

    千次阅读 2011-10-16 23:21:28
    图形学名词解释  3D 三维(three dimension)。客观世界中静止的物体都是三维的,在计算机图形学中常在一定的坐标系中用(x,y,z)坐标系列表示物体。 3D modeling 3D建模。用三维坐标来描述物体的形状。在...
  • 信息系统名词解释

    万次阅读 2011-09-16 17:28:13
    名词解释 信息:事物之间相互联系、相互作用的状态的描述。 信号:信息载体以某种特殊形式的变化和运动反映信息的内容,产生使接收者可以感知,这种特殊形式的变化或运动称为信息载体显示的符号,或叫信息。 管理...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,462
精华内容 8,184
关键字:

内存变量名词解释