• Java基础知识集


    一、java基础

    1.1、java程序实现原理

    • 编译源代码文件,将其形成*.class文件:javac Hello.java(控制台输入的指令),会形成“ Hello.class”文件(二进制的字节码文件);
    • 解释java程序:控制台输入java Hello,控制台打印出Hello World!
    • 放源码的文件扩展名必须是:xxx.java
    • 编译生成的字节码文件扩展名是:xxx.class
    • 字节码不是二进制文件,字节码由java虚拟机(JVM,用c++语言实现的虚拟的计算机)处理成二进制,然后操作系统再执行二进制指令和硬件平台进行交互。不同操作系统上相同的java程序编译生成的字节码是相同(编译器编译机制是相同的)从而实现在windows系统编写的程序可以在Linux系统上运行。
    • java虚拟机(JVM)是在JDK中的,有windows版JDK,Linux版JDK等等。

    一个java文件可以有多个class文件

    java程序从开发到最终运行:

    • 编译期:(可以在windows上)

      第一步:在硬盘上新建一个xxx.java文件

      第二步:在xxx.java文件中编写源代码

      第三步:使用编译器(javac (JDK安装后自带的))对xxx.java文件进行编译

      第四步:如果编译不通过,编译器报错不会生成class文件,通过才会生成class字节码文件,一个java文件可以生成多个class文件。(编译实质上是检查语法)

    • 运行期(JRE在起作用):(可以在windows上或其他操作系统上(os))

      第五步:如果是在Linux上运行,需要将windows上生成的class文件拷贝过去不需要拷贝源代码,真正运行的是字节码。

      第六步:使用JDK自带的一个命令/工具:java(负责运行的命令/工具)执行字节码

      第七步:JVM会将字节码文件进行解释(解释器负责将字节码解释为二进制)

      第八步:JVM将字节码交给操作系统,操作系统会执行二进制码和硬件进行交互。

    path环境变量的作用

    path环境变量的作用就是给windows操作系统指路的,告诉操作系统去哪里找这个命令文件。路径与路径之间用半角分号(英文的)分隔。

    path环境变量本质上是属于windows系统的。

    Dos命令

    可以通过Dos命令窗口完成文件的新建、编辑删除等操作。

    1、mkdir ab(创建一个文件夹ab),mkdir:make directory;del ab(删除文件);cls (清屏);dir (查看当前目录下有什么)

    2、在窗口复制内容

    win7:选中内容,点击右键,标记

    win10:选中内容,右键单击一下。

    3、切换盘符

    直接输入盘符然后回车(例,d:回车

    4、切换目录

    使用cd 路径命令完成目录切换,cd(change directory)。

    相对路径:从形式上看,相对路径一定不会以盘符开始的,是相对于当前所在“'位置'而言的。 <C:\User\Adminstrator>cd Boot 此时得到<C:\User\Adminstrator\Boot>;<C:\User\Adminstrator>cd C:\User\Adminstrator\ Boot 此写法可行

    绝对路径:在windows操作系统中凡是路径起点是盘符的都是绝对路径,如:C:\User\Adminstrator;<C:\User\Adminstrator>cd C:\windows\system32 (得到<C:\windows\system32>)

    1.2、程序类的定义

    类是java中的基本单位,所有的java程序都是以类的形式存在的,在java中有两种定义类的方式。

    类的名称首字母要大写

    • public class 类名称{}:文件名称必须与类名称保持一致(Hello.java文件中的类名称必须为Hello);

    • class 类名称{}::文件名称可以与类名称不同,生成的字节码文件就是“类名称.class”(Hello.java文件中的类为class Demo{}生成的字节码文件是“Demo.class”),在一个 *.java” 文件里面可以使用class定义多个类,并且编译后会形成不同的 *.class文件。

    实际一个 *.java” 文件只会定义一个类

    1.3、运算符

    1、三目运算

    int x=10;
    int y=20;
    int result=0;//声明一个变量就要赋一个值
    result=x>y?x:y;
    //等价于
    if(x>y){
        result=x;
    }else{
        result=y;
    }
    

    2、关系运算符

    如:>,<,>=,<=,!=,==

    关系运算操作返回的结果是布尔型(boolean)

    注意:

    'a'==97;//ture
    '0'==0;//false
    

    3、逻辑运算符

    与(&&),或(||),非(!)

    在逻辑运算之中最为麻烦的部分就是与和或,因为其各有两种写法:

    • 与操作:&,&&,当使用&的时候明确表示多个条件都需要判断;当使用&&如果说前面已经有条件返回了false,则后面的判断不需要继续执行,返回false;&&(短路与,比&性能好)
    • 或操作:|,||(短路或),(同与操作)

    4、位运算符

    可以按照二进制、八进制、十六进制进行数据处理,位运算中数据移位的处理方式实现一些数据的内容变化。关键在于十进制和二进制的转换(除二取余)。

    位与运算:

    int A=19;
    int B=5;
    system.out.println(A & B);
    

    结果为:1(19的二进制是00010011,5的二进制是00000101,从左至右1与0得0,依次运算得二进制为00000001对应十进制1)

    位或运算:

    int A=19;
    int B=5;
    system.out.println(A | B);
    

    结果为:23(19的二进制是00010011,5的二进制是0000101,从左至右1与0得0,依次运算得二进制为00010111对应十进制23)

    位运算最大的特点是可以进行位移的处理:>>,<<(例:int a=2;a<<2;结果为8(00000010->00000100))

    1.4同一个域中变量名不能重名

    在同一个域中,变量名不能重名,不能重复声明

    public static void main(String[] args){
        //声明一个整数型的变量起名age,存储值为20
        int age=20;  //1
        System.out.println(age);
        //int age=20; //2 若1语句没有则会报错找不到变量,代码按从上至下的顺序执行
        //给变量重新赋值
        age=30;
        System.out.println(age);
        //这个不行
        //错误信息:已存在方法main(String[])中定义了变量age
        int age=100;
        System.out.println(age);
    }
    
    欢迎转载学习,只需注明文章出处即可(https://www.cnblogs.com/gyunf/) ,谢谢!
  • 相关阅读:
    循环取出正则匹配的内容(遍历).
    遍历datatable的方法
    asp.net获取URL和IP地址
    匹配多个字符串方法
    世界杯决赛不好看,有点像假球,被裁判黑了?
    2010南非世界杯冠军预测:荷兰夺冠!
    查了几家人民广场附近的川菜和湘菜馆
    白平衡(转载自wikipedia)
    梦想与感动
    港澳旅游相关备忘
  • 原文地址:https://www.cnblogs.com/gyunf/p/12391621.html
Copyright © 2020-2023  润新知