java语言基础知识

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java语言基础知识相关的知识,希望对你有一定的参考价值。

  一、什么是计算机

  基于百度百科

  1.简介

  计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。

  2.组成

  计算机是由硬件系统(hardware system)和软件系统(software system)两部分组成的。

  传统电脑系统的硬体单元一般可分为输入单元、输出单元、算术逻辑单元、控制单元及记忆单元,其中算术逻辑单元和控制单元合称中央处理单元(Center Processing Unit,CPU)
  硬件系统:1)、电源 2)主板 3)CPU 4)内存 5)硬盘 6)声卡 7)显卡 8)调制解调器 9)光驱 10)显示器 11)键盘 12)鼠标 13)音箱 14)打印机 15)视频设备 16)闪存盘 17)移动存储卡及读卡器

  软件系统: 

    • 系统软件
      • 操作系统 -- a.处理器管理、b.作业管理、c.存储器管理、d.设备管理、e.文件管理
      • 语言处理程序(翻译程序):翻译方法由两种,解释、编译
      • 服务程序
      • 数据库管理程序
    • 应用软件

  二、java语言概述

  创始人:James Gosling

  java语言特点:简单性、解释性、面向对象、高性能、分布式处理、多线程、健壮性、动态、结构中立、安全性、开源、跨平台

  java语言跨平台原理:在需要运行java应用程序的操作系统上,安装java虚拟机(JVM Java Virtual Machine)即可,由JVM负责java程序在该系统中的运行

  JRE和JDK的概述

    什么是JRE:JVM + java程序所需的核心类库等。如果运行一个开发好的java程序,计算机中只需要安装JRE即可

    什么是JDK:JRE+java的开发工具

  JDK安装:1.官网下载对应版本 http://www.oracle.com 2.安装,过程中对路径进行选择,不要有中文或者特殊符号如空格等 3.配置JAVA_HOME,对应安装路径,在修改path,对应jdk安装目录下的bin目录。

  path和classpath的区别:1.path配置的是可执行的文件.exe,配置后可以在不同盘符下访问path路径下的可执行文件 2.classpath配置的java的类文件 .class

  注释概述及其分类:1.单行注释 // 多行注释/* */ 文本注释 /** */ 2.注释作用:解释说明程序,帮助调试错误

  关键字的概述和使用:1.关键字是被java语言赋予特定含义的单词 2.关键字特点:组成关键字的字母全部小写 3.常见关键字:public static void class等 4.关键字的注意事项:goto和const作为保留字存在,目前并不使用

  标识符的概述和组成规则

    1.标识符就是给类、接口、方法、变量等起名字时使用的字符序列

    2.标识符的组成规则:英文大小写字母、数字字符、$和_

    3.标识符注意事项:不能使用关键字,不能以数字开头

    4.常见命名规则:见名知意

      包-所有字母小写,域名倒写

      类或接口-一个单词首字母大写,多个单词驼峰标识

      方法或变量-一个单词全部小写,多个单词从第二单词首字母大写

      常量-一个单词所有字母大写,多个单词所有字母大写,用下划线区分每个单词

  常量的概述和使用

    字符串常量:用双引号标识的内容

    整数常量:所有整数

    小数常量:所有小数

    字符常量:用单引号标识的内容,并只能存放单个数字、字母或符号

    布尔常量:true、false

    空常量:null

  进制

    1byte=8bit  1k=1024b 1M=1024k 1G=1024M。。。

  java中不同进制数据的表现形式

    二进制数:由0,1组成,前面加 0b

    八进制数:由0,1...7组成,前面加 0

    十进制:0...9组成,前面非零

    十六进制:由0,1...9,a,b,c,d,e,f,前面加0x

  任意进制转化为十进制数

    系数:每一位上的数据

    基数:x进制,基数就是x

    权:在右边,从0开始编号,对应位上的编号即为该位的权

    结果:每一位 系数*(基数) 的值累加

  十进制到任意进制的转换:除积倒取余

  原码反码补码:在计算机内部,所有的运算都是以二进制补码的形式来运算的

    正数的原反补码都是一样的

    负数的反码是原码的逐位取反(符号位除外)

    负数的补码是反码的末位加1

  变量的概述及格式:

    变量定义格式:数据类型 变量名 = 变量值;

  数据类型的概述及分类

    java中的数据类型分类:基本数据类型、引用数据类型

    基本数据类型分类(四类八种):

      整数型:

        byte:占一个字节 -128~127

        short:占两个字节 -2^15~2^15-1

        int:占四个字节 -2^31~2^31-1

        long:占八个字节 -2^63~2^63-1

      

      浮点型
                float 占两个字节 -3.403E38~3.403E38
        double 占四个字节-1.798E308~1.798E308
           字符型
        char 占两个字节 0~65535
      布尔型
        boolean   
        boolean理论上是占八分之一个字节
  定义不同数据类型的变量
    整数类型数据默认:int类型
    小数类型数据默认类型:double类型
    定义float类型数据后面加F:例:float f = 1.2F
    定义long类型的数据后面加L:long l = 2222222222L(大写)
  使用变量的注意事项
    作用域:同一个区域不能使用相同的变量名
    初始化值问题:局部变量在使用前必须赋值
  数据类型转换之隐式转换
    java中数据类型的转换规则:取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
    例:byte类型+int类型:byte类型数据先转换成int类型数据,再做运算
    案例:
          int a = 10;
          byte b = 20;
          b = a + b;可能会损失精度,a + b的值是一个int类型而b是byte类型
       强制转换的格式:
          b = (byte)(a + b);
  字符和字符串参与运算
    System.out.println(‘a‘);  输出字符类型数据 ‘a‘
        System.out.println(‘a‘+1);  字符数据‘a‘转换成int类型97,再与1相加,结果为98
        ASCII码表需要记住的三个值:
          ‘0‘  48
          ‘A‘  65
          ‘a‘  97
      字符串数据与其余数据进行相加,会直接合并到一起,组成新的字符串
      System.out.println("hello"+‘a‘+1);   结果是"helloa1"
      System.out.println(‘a‘+1+"hello");  结果是"98helloa1"
  char数据类型
    char型数据范围:0--65535
    Java语言中的字符char可以存储一个中文汉字:每个字符占用两个字节,中文也是占的两个字节
  算术运算符的基本用法
    运算符的分类:
    算术运算符,赋值运算符,比较(关系或条件)运算符,逻辑运算符,位运算符,三目(元)运算符
    算数运算符有哪些:* +,-,*,/,%,++,--
    整数相除只能得到整数,如果想得到小数,必须把数据变化为浮点数类型
    / 获取的是除法操作的商,% 获取的是除法操作的余数
    %运算符:当左边的绝对值小于右边绝对值时,结果是左边;%运算符结果的符号只和左边有关系,与右边无关
  算术运算符++和--的用法:
    ++:自加。对原有的数据进行+1
    --:自减。对原有的数据进行-1
    放在操作数的前面,先自增或者自减,然后再参与运算。
    放在操作数的后面,先参与运算,再自增或者自减。
  赋值运算符的基本用法
    基本的赋值运算符 = :把=右边的数据赋值给左边
    扩展的赋值运算符:+=,-=,*=,/=,%=
  关系运算符的基本用法及其注意事项
    关系运算符(比较运算符,条件运算符):==,!=(不等于),>,>=,<,<=
    结果为boolean类型
  逻辑运算符的基本用法
    &&和&的区别?
    &&具有短路效果。左边是false,右边不执行(结果为false)
    &是无论左边是false还是true,右边都会执行
  ||和|的区别?
    || 具有短路效果。左边是true,右边不执行(结果为true)
    | 是无论左边是false还是true,右边都会执行
  位运算符的基本用法
    位异或运算符的特点及面试题
    ^的特点:一个数据对另一个数据位异或两次,该数本身不变
        面试题:
        请自己实现两个整数变量的交换
        假如  a = @    b = #
        a = a ^ b = @ ^ #
        b = a ^ b = @ ^ # ^ # = @
        a = a ^ b = @ ^ # ^ @ = #
        最后结果: b = @    a = #
  
    <<:左移    左边最高位丢弃,右边补齐0
    >>:右移    最高位是0,左边补齐0;最高为是1,左边补齐1
    >>>:无符号右移 无论最高位是0还是1,左边补齐0
    案例:最有效率的算出2 * 8的结果
      2<<3
  三元运算符的基本用法
    三元运算符的格式:(关系表达式) ? 表达式1 : 表达式2;
    当关系表达式为true,结果为表达式1
    当关系表达式为false,结果为表达式2
  键盘录入的基本格式
    格式:
    a:导包
      格式:import java.util.Scanner;
      位置:在class上面。       
    b:创建键盘录入对象
      格式:Scanner sc = new Scanner(System.in);       
    c:通过对象获取数据   
      格式:int x = sc.nextInt();
    注意:无论我们想要键盘输入几次数据,创建键盘录入对象只要一次
  选择结构if语句格式:
    if语句的第一种格式
    if(比较表达式) {
      语句体;
    }
    当比较表达式成立的时候,就运行语句体;反之,不运行
  注意事项:
    比较表达式无论简单还是复杂,结果必须要是boolean类型的值
    if语句控制的语句体如果是一条语句,大括号可以省略(建议不省略)
    一般来说:有左大括号就没有分号,有分号就没有左大括号
 
    if语句的格式2
    if(比较表达式) {
      语句体1;
    }else {
      语句体2;
    }
    当比较表达式成立的时候,就运行语句体1;反之,运行语句体2
 
  if语句的格式2和三元的相互转换问题:
    三元运算符实现的,都可以采用if语句实现。反之不成立
    什么时候if语句实现不能用三元改进呢?
    当if语句控制的操作是一个输出语句的时候就不能。
    为什么呢?因为三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。
 
    if语句的格式3
      if(比较表达式1) {
        语句体1;
      }else if(比较表达式2) {
        语句体2;
      }else if(比较表达式3) {
        语句体3;
      }
      ...
      else {
        语句体n+1;
      }
 
  选择结构switch语句的格式及其解释
    switch(表达式) {
      case 值1:
        语句体1;
        break;
      case 值2:
        语句体2;
        break;
        …
      default:   
        语句体n+1;
         break;
      }
    注意:表达式里面可以放的数据类型:
      基本数据类型:byte short char int
      引用数据类型:枚举   String(字符串)
    执行顺序:先计算表达式的值,然后和case后面的匹配,如果有就执行对应的语句;否则执行default控制的语句
  选择结构switch语句的注意事项:
    A: case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
    B: break最好不要省略,会出现case穿透
    C: default并不是一定要放在最后,但是一定是最后才会去执行
    D:遇见break或者大括号就结束了
  选择结构if语句和switch语句的区别
    switch 和 if语句的使用场景区别?
      switch建议判断固定值的时候用
      if建议判断区间或范围的时候用
  循环结构概述和for语句的格式及其使用:
    A:循环结构的分类
      for,while,do...while 
    B:循环结构for语句的格式:
      for(初始化表达式;条件表达式;循环后的操作表达式) {
        循环体;
      }
    C执行流程:
      a:执行初始化语句
      b:执行判断条件语句,看其返回值是true还是false
        如果是true,就继续执行
        如果是false,就结束循环
      c:执行循环体语句;
      d:执行循环后的操作表达式
      e:回到B继续。
    注意:for语句在循环结束后,定义的变量会被释放,接下来的语句要使用,需重新定义
  循环结构while语句的格式和基本使用
    A:循环结构while语句的格式:
    while循环的基本格式:
      while(判断条件语句) {
        循环体语句;
      }
    完整格式:
      初始化语句;
      while(判断条件语句) {
        循环体语句;
        控制条件语句;
      }
    B:执行流程:
      a:执行初始化语句
      b:执行判断条件语句,看其返回值是true还是false
        如果是true,就继续执行
        如果是false,就结束循环
      c:执行循环体语句;
      d:执行控制条件语句
      e:回到B继续。
  循环结构do...while语句的格式和基本使用:
    A:循环结构do...while语句的格式:
      do {
        循环体语句;
      }while(判断条件语句);
    完整格式;
      初始化语句;
      do {
        循环体语句;
        控制条件语句;
      }while(判断条件语句);
    B:执行流程:
      a:执行初始化语句
      b:执行循环体语句;
      c:执行控制条件语句
      d:执行判断条件语句,看其返回值是true还是false
        如果是true,就继续执行
        如果是false,就结束循环
      e:回到b继续。
  循环结构三种循环语句的区别
    三种循环语句的区别:
      do...while循环至少执行一次循环体。
      而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
    for循环和while循环的区别:
      如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。
      不知道用谁就用for循环。因为变量及早的从内存中消失,可以提高内存的使用效率。
  循环结构注意事项之死循环
    A:一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环。
    B:两种最简单的死循环格式  - for条件判断默认为true
      while(true){...}
      for(;;){...}
  注意
    ‘\x‘ x表示任意,\是转义符号,这种做法叫转移字符。
    ‘\t‘    tab键的位置
    ‘\r‘    回车
    ‘\n‘    换行
    ‘\"‘    可以用转义符号打印双引号和单引号
    ‘\‘‘
  控制跳转语句break语句:
    break的使用场景:
      只能在switch和循环中 (结束循环:就近原则)
  控制跳转语句continue语句
    continue的使用场景
      只能在循环中 
  控制跳转语句标号:
    标号:标记某个循环对其控制
    标号组成规则:其实就是合法的标识符
  控制跳转语句return语句
    A:return的作用
      返回
      其实它的作用不是结束循环的,而是结束方法的。
    B:案例演示
      return和break以及continue的区别?
      return是结束方法
      break是跳出循环
      continue是终止本次循环继续下次循环
  方法概述和格式说明
    A:为什么要有方法
      提高代码的复用性 
    B:什么是方法
      完成特定功能的代码块。 
    C:方法的格式
      修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
        方法体语句;
        return 返回值; 
      } 
    D:方法的格式说明
      修饰符:目前就用 public static。后面我们再详细的讲解其他的修饰符。
      返回值类型:就是功能结果的数据类型。
      方法名:符合命名规则即可。方便我们的调用。
      参数:
        实际参数:就是实际参与运算的。
        形式参数;就是方法定义上的,用于接收实际参数的。
      参数类型:就是参数的数据类型
      参数名:就是变量名
      方法体语句:就是完成功能的代码。
      return:结束方法的。
      返回值:就是功能的结果,由return带给调用者。 
    如何写一个方法
      1,明确返回值类型
      2,明确参数列表 
  方法的注意事项
    A:方法调用(有具体返回值)
      a:单独调用,一般来说没有意义,所以不推荐。
      b:输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。
      c:赋值调用,推荐方案。
    B:案例演示
      a:方法不调用不执行
      b:方法与方法是平级关系,不能嵌套定义
      c:方法定义的时候参数之间用逗号隔开
      d:方法调用的时候不用在传递数据类型
      e:如果方法有明确的返回值,一定要有return带回一个值
  方法重载概述和基本使用
    方法重载:
      在同一个类中,方法名相同,参数列表不同。与返回值类型无关。
      参数列表不同:
        A:参数个数不同
        B:参数类型不同
        C:参数的顺序不同(算重载,但是在开发中不用)

 

    

 

  

 

  

























































以上是关于java语言基础知识的主要内容,如果未能解决你的问题,请参考以下文章

总结了零基础学习Java编程语言的几个基础知识要点

Java基础知识

Java知识体系之基础知识

ZZNUOJ_Java语言从非零基础到入门讲解

ZZNUOJ_Java语言从非零基础到入门讲解

ZZNUOJ_Java语言从非零基础到入门讲解