java学习笔记(持续更新)

Java基础学习(持续更新…)

一、jdk的安装
  • jdk包括

    1. 开发工具
    2. jre:
      • jvm
      • 核心类库
  • 一个电脑上可以安装很多个版本的jdk, 只要安装目录不同就可以了,至于以后你用哪一个, 环境变量里面你就去配置哪一个就可以了。

二、为什么要配置环境变量
  • 我们想让 java命令和javac命令在任意的目录下都可以使用, 而不只是 bin目录。
  • 用dos命令来编译运行java程序:
    • cd:切换目录进入目录
    • dir : 展示目录下的 直接目录结构。
    • 除了根目录, 其他的目录下面 都会有额外的两个目录。
      . 代表的当前目录
      … 代表的是上一层目录。
    • cd / :回到根目录。
    • cls: 清幕
    • exit
三、配置环境变量的方法
  1. 打开系统环境变量 对环境变量里面的Path添加一条路径:jdk的安装目录\bin
  2. 为了以后开发软件更好的识别路径,还有是为了保证更好的确保path的安全,可以在环境变量里面加入一条JAVA_HOME 其路径为你安装jdk的路径,然后再在Path里面加入**%JAVA_HOME%\bin** (JAVA_HOME的名字最好不要变 )
四、解决win10下用笔记本编辑的java程序中文乱码
  • win10的记事本默认utf-8编码,dos命令窗口是ANSI编码,格式不统一,导致输出中文乱码,可以在记事本里面另存文件编码为ANSI即可。
五、Java的基本语法

看下面的代码:HelloWorld.java

public class HelloWorld{    //HelloWorld是一个类
    public static void main(String[] args){
        System.out.println("Hello World !!");
    }   
}
  1. 程序的组成:

    1. 注释(非必须):给人看的,jvm不会编译

      • // 单行注释
      • /* */ 多行注释
      • /**
        文档注释
        */
    2. 关键字:java 规定的 给了一些单词特殊的含义(关键词都是小写的,小写的不一定是关键词,比如 main并不是关键词)

      • 程序里的 public,class,static,void是关键词
    3. 标识符:程序员起的名字

      • 语法规定:
        1. a到z A到Z 0到9 $ _
        2. 不能是关键字。
        3. 不能以数字开头。
    4. 数据:

      • 常量:在程序运行时不变的量

        • 字符串常量
        • 字符常量
        • 整数常量
        • 小数常量
        • 布尔常量
        • 空常量:只是用来占位,不可输出
      • 变量 :~其实是在内存空间中开辟的一块空间,那么怎么限制他的格式呢???

        • 一般有以下8个基本数据类型来限制其格式

          ​ 整型
          ​ byte 1 -128 ~127
          ​ short 2 -32768~ 32767
          ​ int 4 正负21亿左右
          ​ long 8
          ​ 浮点型
          ​ float 4
          ​ double 8
          ​ 字符型
          ​ char 2
          ​ 布尔型
          ​ boolean 1 (java的官方声明 boolean 类型没有明确的大小 )

          ​ 表示数据范围的大小顺序:
          ​ byte < short = char < int < long <float < double

          ​ 1 < 2 = 2 < 4 < 8 < 4 < 8

      • 数据类型的转换:

        1. 隐式类型转换

          规则: 是小范围的数据类型 可以直接转到 大范围的数据类型。

          举例:

          int a = 10;
          long b = a; //自动类型转换
          

          运算中的自动类型转换:

          ​ 不同种类型的数据是没有办法直接运算的,所以要想运算必须先统一类型

          1. 比int大(或者是等于)的类型,在进行运算的时候,小类型会自动提升为大类型进行运算。
          2. 比int小的数据类型, 在进行运算的时候, 会双双提升为int类型 再运算。
        2. 强制类型转换

          规则: 是大范围的数据类型 转到 小范围的数据类型 必须要强制类型转换。

                  1:明确转过去 数据正确的,这时候可以转
          		int a = 10;
          		//byte b = a; // 报错。
          		byte b = (byte) a; // 正确。
          
                  2: 强制让小数取整。
          		double d = 3.74;
          		int a= (int)d; //3   正确
          
          		3: 不推荐: 明知道转过去数据不对了, 还转。
          		int a = 200;
          		byte b = (byte)a; //肯定不是200了 至于是什么数 你不需要知道。 
          
        3. 类型转换的注意事项

          1. boolean类型不参与任何的类型转换

          2. 常量优化机制

            写一个整数常量 默认是int类型。

            System.out.println(100); // 100 就是int类型的数据。
            

            比int小的类型 都存在常量优化机制。

            byte a = 100; // 虽然100是int类型不假,但是依然可以赋值,这就叫做常量优化机制。   //底层代码  byte a = (byte)100;
            					
            int b = 100;
            //byte c = b; // 报错。  因b 不是常量。 他是变量。
            
            byte d = 100 + 20; // 正确。 常量的运算, 在编译成class期间 就已经把他俩的结果120弄到了class文件中,运行之前就已经算出了。
            // 所以等运算的时候  其实就是运行  byte d = 120;
            byte e = 100;
            //byte f = e +20; // 报错。 因为e是变量  运行的时候 e会先提升为int类型 再和int类型的20进行运算,最后结果是int类型。
            
        4. 类型转换解释一些原理

          1. long类型的数据后面 为什么要加 L

            一个大的整数已经超出了int(整数默认的类型),后面带个L可以告诉编译器取用long型来解析

          2. float 类型的数据后面 为什么要加一个 F

            原因同1

    5. 符号

      • 基本符号

        ​ 空格 :写代码的时候 每个单词必须用空格隔开。
        ​ {} :表示范围, 里面可以写多条语句。
        ​ ; :一个分号代表一条语句的结束。
        ​ () :
        ​ 强制类型转换
        ​ 改变运算的优先级
        ​ 结构语句
        ​ 方法的调用和定义。
        ​ [] : 数组
        ​ “” :字符串
        ​ ‘’ : 字符
        ​ . :
        ​ 表示小数点
        ​ 表示调用的过程。

      • 运算符

        1. 算术运算符 : + - * / % 注意 字符+ 和 字符串+

        ​ 2. 自增自减运算符:

        ​ 这里要明白表达式的概念,用运算符连接起来的式子叫表达式

        int i = 10;
        int j = i++;
        System.out.print(i); //i=11
        System.out.print(j); //j=10,这里指的是j就是表达式(i++)经过编译后的值
        
        int i = 10;
        int j = ++i;
        System.out.print(i); //i=11
        System.out.print(j); //j=11,这里指的是j就是表达式(++i)经过编译后的值
        
        1. 赋值运算符

          1. 普通赋值运算符 :=

          2. 复合赋值运算符:+= -= *= /= %=

          3. 注意: 复合赋值运算符 底层有一个强制类型转换的动作。

          short s = 10;
          byte b = 20;
          b+=s;//这里是正确的,底层代码 : b = (byte)(b+s);
          System.out.println(b);
          

        2. 关系运算符:> < == >= <= !=

        3. 逻辑运算符:& | ! ^ 短路与 && 短路或||

        4. 三元运算符:关系表达式 ? 表达式1 :表达式2;

          语句:顺序结构、选择结构、循环结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q J X

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值