Java学习笔记-day01

JAVA:语言+开发环境+应用环境+部署环境


            


    语言
        关键字+语法要求
    环境
        jdk: 开发
        jre: 运行 JVM+类库
        api:程序接口,封装好的东西在jre里面放着。而api提供给你了java开发者已经封装好的包的用法
    JAVA文件介绍    
        bin:放着运行程序的命令
        db:自带的小型数据库
        include:java中使用C语言写的那一部分
        jre:自己运行需要的环境
            jre-lib-中有个rt.jar 用java命令打出的压缩包,java所有源码以后缀class的形式存在,这也是java可以运行的原因
        lib:所依赖的包
        src:java中jdk的源码--对应api中的内容
    JAVA不同的三个运行平台:
        JavaSE 基础Java,提供最基本语法和关键字,以及API
        JavaME 移动端开发。但界面是弱势,鬼鬼,这也太丑了!!!
        JavaEE 企业级应用开发。也叫做JavaWEB开发,在基础语法上加上了一些网络工具,集成了更多的API
        作用方向不同,但语言相同

JDK:
    安装:
        1.windows 双击安装即可
                  之后配置路径:
                    JAVA_HOME: 安装路径 #现在暂时用不着,等安装tomcat之后会默认寻找JAVA_HOME
                    PATH: 安装路径、bin
                        PATH = blahblahblah\bin ;
        2.linux:
            JAVA_HOME=/opt/java/jdk1.8..
            PATH=$JAVA_HOME/bin"$PATH
            CLASSPATH
        
    jvm:Java虚拟机
        XXXX.class 这个文件计算机都不认识,因此利用JVM将其翻译成相应的机器语言进行识别
        只要有JVM,class文件就可以运行
        每个操作系统的JVM不同,因此是class跨平台,不是JVM
    垃圾回收站GC:专门用来管理内存,清理掉没有引用的内存节点
        C语言用完内存需要手动释放内存,如果忘记内存就会一直停留
        Java有了垃圾回收站,使用内存时只需要用new申请就可以
        利用系统级的线程来控制,专门的算法计算哪个空间不需要,如果计算出不需要的就会自动回收
    安全检查机制:
        将class交给虚拟机,会先进行检测
        
书写第一个Java程序
    
    1.创建一个后缀名为.java的文件Hello.java,
    2.vim Hello.java
    3.class name
        {
                程序内容
        }
    4.将源文件编译转换成.class 字节码文件
    5.运行
    编译:javac -X XXXX.java
    运行:java XXXX(没有.class)
    编写时注意中英文符号

类加载器:
    ***PS: “ . ”代表当前路径
    将需要运行的程序从他原本所在的位置加载到虚拟器内存执行
    采用双亲委托机制(推卸责任!)进行加载
        三个加载器都可以进行加载,也都会执行
            编译时先交给本地类加载器,但是本地类不想加载,就把加载任务交给扩展类加载器,扩展类在推卸给启动类,启动类也不想加载,因此就去能加载的目录中寻找XXX.jar
            但是找不到,就下面传递给扩展类,扩展类去对应找,如果还找不见就去本地类,此时本地类才会去CLASSPATH查找
    有很多分类,将自己可以加载的东西都加载到内存
        1.启动类加载器    只加载jre--lib--rt.jar中的内容
        2.扩展类加载器    只加载jre--lib--ext中的jar包
        3.本地类加载器    只加载CLASS所指定的位置,有时候找不到或者无法加载主类,就是因为CLASSPATH指向错误
            java -cp XXXX CLASSPATH临时指向某一目录
            也可以将Hello.class打成一个jar包
            Jar -cvf XXX.jar XXX.class
                但是需要手动打开jar包,然后手动添加主函数的路径
                    打开压缩包,然后在META-INF中的文件中添加主函数
                运行jar包:java-jar XXX.jar
                然后放到jre--lib--ext中
            java -verbose可显示详细的编译过程
            这三个最重要
        4.自定义加载器
        ...
Java规范
    源文件
        public修饰的类名必须要与文件名一模一样,包括大小写
        同一个文件中不允许出现两个使用public修饰的类
        同一个源文件中允许出现多个class
        同一个源文件中可以在多个类中定义主方法,二期主方法不一定非要定义在用public修饰的类中
    
    Java类的书写规则
        字节码验证
            代码要符合JVM的规范(编程规范,语法错误)
            代码破坏计算机的系统或者硬件
            栈不能溢出(内存一定要够用)
            方法的参数类型一定要正确
            类型转换要正确
    
Java的三大元素
        包 package:为了避免命名冲突 可加可不加
            定义: package com.briup.day1
                    class One{}
                    
            之后想找到这个class文件,就要com.briup.day1.One
            package 定义之后需要用包名+类名来寻找 java com.briup.day1.PackageTest
            javac -d [将编译后的包文件以及class想放到的目录]
        导包 import 只要不在同一个包并且也不再Java.lang包下面类的引用都需要加import
            one/Hello.class  two/Hello.class
            one中的Hello的类可导入two中Hello中
            import two.* 导入全部
        Java.lang 最基本的包,即使不做引入也会将这个包中的内容引入
        class
            定义类的关键字 必须要存在

猜你喜欢

转载自blog.csdn.net/gangangan0001/article/details/87860459
今日推荐