jdk和jre以及jvm的关系

1.JRE(Java Runtime Environment):java程序运行时所需要的环境,包含"jvm"和运行时所需要的"核心类库"
2.JDK(Java Development Kit):是java程序开发工具包,包含'JRE'和开发人员使用的工具(javadoc)\
    
3.注意:
  由于jdk包含了jre,jre又包含了jvm
  所以我们只需要安装一个jdk即可

常见的dos命令

作用命令
切换盘符盘符名: -> 回车 -> 盘符名不区分大小写 ,但是我们得有这个盘
查看当前目录下得内容dir
进入到指定的目录cd 文件夹名
进入到多级目录cd 文件夹名\文件夹名
退到上一级目录cd.. 或者cd ..
退到磁盘位置cd\或者cd \
清屏cls
关闭dos命令窗口exit
创建文件夹mkdir 文件夹名
创建多级文件夹mkdir 文件夹名\文件夹名
删除文件夹rd 文件夹名(被删除的文件夹必须是空的,而且不走回收站)
删除文件del 文件名.后缀名
批量删除指定类型的文件del *.后缀名

开发三步骤

1.编写:创建一个xxx.java文件
  a.注意:需要将文件后缀名设置成显示
2.编译:javac -> 生成一个class文件(字节码文件),jvm运行java程序,只认识class文件
  javac java文件名.java
    
  比如: javac Demo01HelloWorld.java  
      
3.运行:java
  java class文件名 -> 不要带后缀,不要带后缀,不要带后缀
    
  java Demo01HelloWorld  

编写java的入门程序

/*
  public class Demo03HelloWorld
   public:权限修饰符,代表公共的(面向对象时说)        
   class:代表的是类
   Demo03HelloWorld:类名,要求和java文件名保持一致
   
   
  在定义一个类:类是java程序最基本的组成单元
               所有的代码都要在class类中写
*/
public class Demo03HelloWorld{
  
    /*
      public static void main(String[] args)
        public :权限修饰符,代表公共的(面向对象时说)
        static:静态关键字(面向对象时说)    
        void:代表方法无返回值(讲方法的时候说)
        main:方法名
           (String[] args):main方法的参数,参数类型为String数组,参数名为args(后面说)
        
        main方法是java程序的入口,jvm执行java程序从main方法开始执行  mian
     
    */
    public static void main(String[] args){
        //输出语句(打印语句),可以将我们的结果输出到控制台上
        System.out.println("HelloWorld");
    }
}    

注释

1.注释:对代码的解释说明,不参与编译和运行
2.分类:
  a.单行注释: //注释内容
  b.多行注释:
    /*
      注释内容
    */
  c.文档注释:
    /**
      注释内容
    */
//单行注释  定义一个类,类名叫做Demo01HelloWorld
public class Demo01HelloWorld{
    /*
      叫做main方法,是程序的入口
    */
    public static void main(String[] args){
        
        //输出语句
        System.out.println("HelloWorld");
    }
}    
文档注释: 可以使用javadoc命令生成此类相关的一个API文档,让别人快速了解此类的作用以及其中的成员
  /**
    注释内容
  */
    
 命令:javadoc -d 要生成的文件夹名字 -author -version 文件名.java   
/**
  这是一个Java入门程序
  @author  涛哥
  @version v1.0
*/
public class Demo02HelloWorld{
    /**
      main方法的作用为程序的入口
    */
    public static void main(String[] args){
        //输出语句
        System.out.println("HelloWorld");
    }
}    
System和String中的首字母s要大写
class后面跟的类名要和java文件名保持一致  

注意事项

字符编码问题

1.当cmd命令行窗口的字符编码与.java源文件中的字符编码不一致时,就会在dos命令窗口中出现乱码,原因是啥?
    
  写代码的时候,编码为:UTF-8
  dos命令窗口默认字符集: GBK
      
  a.如果是英文,在这两个编码中(UTF-8和GBK)一个字符就占一个字节
  b.如果是中文,同样的中文内容在这两个编码中所占字节数不一样
    UTF-8:一个中文占3个字节
    GBK:一个中文占2个字节

源文件名(java文件名)与类名一致问题

1.源文件名是否必须与类名一致
  a.如果class前面没有public,此时类名可以和java文件名不一致
  b.如果class前面有public,此时类名必须和java文件名保持一致
    
2.一个源文件中是否可以有多个类?
  可以,但是要定义非public的
  
3.main方法必须在public的类在中嘛?
  不是
  但是后面main方法都要写在public的类中

1.不管class是否为public的,我们的类名都建议和java文件名保持一致

2.我们尽量在一个java文件中定义一个class类

3.main方法全部放到public的类中

常量

1.概述:在代码的运行过程中,值不会发生改变的数据
2.分类:
  整数常量:所有的整数,包括正负 -1 1 
  小数常量:所有带小数点的 2.5  2.0
  字符常量:带单引号的 ''  单引号中必须有,且只能有一个内容
          '1'   对
          '11'  不对
          '1a'  不对
          ' '   对
          '  '  不对
          'tab键' 对
  字符串常量:带双引号 "" 双引号中的内容随意
  布尔常量:true false -> 用于判断条件
  空常量:null -> 代表数据不存在->不能直接使用
public class Demo06HelloWorld{
    public static void main(String[] args){
        //整数常量
        System.out.println(1);
        System.out.println(-1);
        
        //小数常量
        System.out.println(2.5);
        System.out.println(2.0);
        
        //字符常量
        System.out.println('1');
        //System.out.println('11');''中必须有且只能有一个内容 11算两个内容
        //System.out.println('');''中必须有且只能有一个内容
        System.out.println(' ');//一个空格算一个内容
        //System.out.println('  ');//一个空格算一个内容,两个空格就是两个内容
        System.out.println('    ');//tab键算一个内容
        
        //字符串常量
        System.out.println("张无忌和赵敏以及周芷若还有小昭以及朱九真...没羞没臊的故事");
        System.out.println("");
        //布尔常量
        System.out.println(true);
        System.out.println(false);
        
        //空常量
        //System.out.println(null); null代表数据不存在,不能直接引用
    }
}
public class Demo07HelloWorld{
    public static void main(String[] args){
        System.out.println(10+3);//13
        System.out.println(10-3);//7
        System.out.println(10*3);//30
        System.out.println(10/3);//3  如果/前后都是整数,取的整数部分
        System.out.println(10/3.0);// 如果/前后有一个是小数,结果就是带小数点的
    }
}

变量

1.概述:在代码的运行过程中,值可以根据不同的情况随时发生改变的数据
       int price = 10;
           price = 8;
2.作用:可以临时存储一个数据
3.java中变量的分类:
  基本数据类型:4类8种
      a.整型:byte short int long
      b.浮点型:float double
      c.字符型:char
      d.布尔型:boolean
          
  引用数据类型:
      类 数组 接口 枚举 注解
          
4.整数默认类型为int
  小数默认类型为double
          
5.按照取值范围从小到大做排序:
  byte short char -> int -> long -> float -> double
      
6.特殊的类型:字符串类型
  用String表示,但是String不属于基本类型,属于一个类,所以属于引用数据类型
  只不过String变量的定义格式和基本类型一样
数据类型关键字内存占用取值范围
字节型byte1个字节-128 至 127 定义byte变量时超出范围,废了
短整型short2个字节-32768 至 32767
整型int(默认)4个字节-2^31^ 至 2^31^-1 正负21个亿
-2147483648—2147483647
长整型long8个字节-2^63^ 至 2^63^-1 19位数字
单精度浮点数float4个字节1.4013E-45 至 3.4028E+38
双精度浮点数double(默认)8个字节4.9E-324 至 1.7977E+308
字符型char2个字节0 至 2^16^-1
布尔类型boolean1个字节true,false(可以做判断条件使用)
public class Demo08Var{
    public static void main(String[] args){
        //byte
        byte num1 = 100;
        num1 = 101;
        //num1 = 200;超出了byte的取值范围了
        System.out.println(num1);
        
        //short
        short num2 = 100;
        System.out.println(num2);
        
        //int 整数默认类型
        int num3 = 100000000;
        System.out.println(num3);
        
        /*
          long 定义long型的变量,习惯上再值得后面加上L或者l
          建议用L
        */
        long num4 = 100000000L;
        System.out.println(num4);
        
        /*
          float 定义float型的变量,请在小数后面加F或者f
          建议用F
        */
        float num5 = 2.5F;
        System.out.println(num5);
        
        /*
          double
        */
        double num6 = 2.5;
        System.out.println(num6);
        
        /*
          char 代表字符变量
        */
        char num7 = '中';
        System.out.println(num7);
        
        /*
          boolean
          true false
        */
        
        boolean num8 = true;
        boolean num9 = false;
        System.out.println(num8);
        System.out.println(num9);
        
        /*
          num9代表的是false
          相当于将num9的false赋值给了变量num8,此时num8的true被覆盖了,变成了num9的false了
        */
        num8 = num9;
        System.out.println(num8);
        
        /*
          String 字符串
        */
        String s = "atguigu";
        s = "taoge";
        System.out.println(s);
    }
}
最后修改:2024 年 06 月 25 日
如果觉得我的文章对你有用,请随意赞赏