java学习笔记 22信算

 

****提交git仓库 网页打开gitee、
1.(初始化只能一次)(不然得删掉文件里的多出的仓库)
   git init
2.文件名(不是文件夹名)
  git add 文件名 (git add note.txt)
3.在仓库里输入你是谁
  git config --global user.name "邢文佳"
  git config --global user.email "3350814574@qq.com"
4.提交文件(确保之前有add的操作)
  git commit -m "first commit"  
5.地址(绑定远程仓库)  
  git remote add origin https://gitee.com/xing-wenjia/33.git
6.  推送到远程仓库
  git push -u origin "master"
 注意先保存文件再提交(保存ctrl+S)


$$$删掉了系统变量
CLASSPATH    ,;%JAVA_HOME%\;lib;%JAVA_HOME%\;lib\;tools.jar;%MAVEN%\;lib


***绝对路径:
 C:
 D:
 /


*****编译型错误
      javac
     运行时错误
      java 
 
 
 @@@@@JDK、JRE、JVM有什么区别  (要考)
JDK:java development kit(java开发工具),JDK是用于开发Java程序的最小环境。
    JDK是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。

JRE:java runtime environment (java运行时环境),是提供给Java程序运行的最小环境。
     JRE包含了java虚拟机、java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。

JVM:Java虚拟机,是Java跨平台的核心。引入JVM后,Java语言在不同平台上运行时不需要重新编译。

运行java程序只需安装JRE。如果需要编写java程序,则需要安装JDK。
总结:JRE是java运行时环境,而JDK是java开发工具包,JDK包含JRE,但是JRE可以独立安装。
      简单来说:JDK=JRE+多种Java开发工具
                JRE=JVM+各种类库

*****用vscode运行.java(例如HelloWorld.java)
   点开文件终端
   编译:
   使用javac去翻译
       dir或ls
       javac HelloWorld.java   //会生成同名的字节码文件
   运行:  
       java HelloWorld

****修改环境变量
    三个确定按钮都要点
    重新打开cmd、vscode
    记得保存编码再编译运行

****找不到主类问题
   1.字节码生成没有 (终端输出java HellWorld.cl)
   2.java HellWorld 命令对不对,文件名对不对
   3.CLASSPATH可以不写,要写得加.


*****跨平台
     高级编程语言的编码运行步骤:
      编码
      编译
      运行
     高级语言的编译方式分为三种:
     编译型:使用专门的编译器,针对特定的操作系统,
            将源代码“翻译”为机器码,并包装成该平台所能识别的可执行程序。
     解释型:有专门的解释器,将源码解释成特定平台的机器码,并且立即执行,
            不会形成新的文件,就是将编译型的语言编译和执行结合成一步同时进行
            缺点:效率低(Python、Shell等)
     混合型:
            编译加解释
            源码要经过编译,生成与平台无关的字节码。class文件,不是可执行程序
            需要jvm去解释执行(java为不同的操作系统提供了不同的虚拟机)
    java
    java跨平台的原理
            Write Once,Run any where

****常用命令
         javac 编译命令
    格式 javac [-d 目录路径] 文件名.java
    作用 编译源码文件,获得字节码文件 可选:将字节码文件存放到-d后面指定的位置
    使用 
    javac HelloWorld.java // 不指定目录.class存放到当前文件
    javac -d obj/ HelloWorld.java
    // 将编译后的.class存放到obj目录下
  java 运行的命令
    格式 java [-cp .class文件的目录] 类名
    作用 运行字节码文件 可选:从指定路径查找要运行的文件
    使用
      java HelloWorld
      java -cp obj/ HelloWorld


******将com文件夹里briup包里的Hello.class存放到obj目录下移到obj文件夹里
  先编好com里的.Java,再.java里加上package。。。,
  打开终端javac -d ../obj/ Hello.java
        java -cp ../obj com.briup.Hello

*****Table类
定义格式:
       Package 包名
       包名一般是公司域名的反写;
 要求:
      Package语句必须是程序的第一条可执行语句
      Package语句在一个文件中可以没有
      (这个包名的代码package com.briup;编译后字节码文件会存放到com/briup下。)
 场景:
       教务系统
       学生管理(新增 修改 删除 查询)
       教师管理(新增 修改 删除 查询)
      Package 按角色区分模块
         com.briup.students;
          AddStudent
          EditStudent
          DeleteStudent
          UpdateStudent
        com.briup.teachers;
          AddTeacher
          EditTeacher
          DeleteTeacher
          UpdateTeacher
      Package 按功能区分模块
       com.briup.add;
          addStudent;
          addTeacher;
        com.briup.edit;
          editStudent;
          editTeacher;
        com.briup.delete;
          deleteStudent;
          deleteTeacher;
        com.briup.update;
          updateStudent;
          updateTeacher;
  导包
     import 包名.类名;
     import java until.Scanner;
     不需要导包就可以使用的
    java.lang
  API文档
    https://docs.oracle.com/javase/8/docs/api/index.html
  JVM
  垃圾回收器

**********中文乱码的解决方式
         UTF8中的 
        在打开 GBK等去切换


******注释
         //单行注释  单行注释 单行注释可以嵌套使用

         /*
           多行注释   //多行注释不能嵌套多行注释
         */            

        /**
           文档注释
         */     


****关键字:被java赋予特殊含义的单词
          常用的代码编辑器对关键字有高亮提示
    保留字:暂时还没被java赋予特殊含义的单词,可能未来被入围关键字
    标识符:变量、常量、方法的名字
           命名规则
               1.不能使用java中的关键字保留字
               2.可以由字母、数字、下划线$组成
               3.数字不能放开头
               4.大小写敏感

*****编码习惯
       命名规则:
          类和接口:
          每个单词首字母都大写(大驼峰)
           class Hello
           class HelloWorld
           class HelloMyWorld
       方法和变量
          首字母小写,第二个单词开始每个首字母大写(小驼峰)
           int num;
           getStudentById();
       常量
          全词大写 多个单词之间用_分隔
          LIGHT_COLOR
          MAX_NUM
       临时变量 一般用下划线开头
          _a
          int _a
          int $ _a
       变量和常量的定义
       变量
           定义:在程序运行中,他的值不可以发生改变 
           分类: 字面值常量
                     用“”阔起来的一个或零个或多个
                    "" 
                    "0" 
                    "hello" 
                    "a"
       常量
          整数变量
          小数变量
          字符变量
          字符变量‘’单引扩起来的单个字符
                'a','A','你','好'
          自定义常量
          布尔常量
                true false   
          空常量
                null
          除了null其他常量可以直接用输出语句输出
          

******声明final关键字
       final int NUM_A = 1;
      类的常量定义在main的外部
      const 在JavaScript中声明常量的关键字
  变量 
    定义 用于储存值的一种容器 
      强类型语言:比如在java中 声明变量需要指定他的数据类型,并且这个类型不能更改了
        int a;
        a = 10;
        a = 10.1;// 编译时错误
      弱类型语言中:比如javascript 声明变量不需要指定数据类型,这个类型赋值时确定
      let a;
      a = 10;
      a = 10.1;
      a = true;
      a = {name:"张三",age:12};
      a = [1,2,3,4,5,6,7,{name:"张三",age:12},[],true]    声明
      int a = 10; // 声明和初始化
      或者
      int a; // 声明
      a = 10; // 初始化
    注意:
      java中变量一定要先声明 再赋值 再使用
        S.o.p(a);// a?
        int a;

        int a;
        S.o.p(a); // a=?
        a = 1;


*****数据类型
      基本数据类型
        整数类型:
          byte:8位,取值范围是 -128 到 127。
          short:16位,取值范围是 -32768 到 32767。
          int:32位,取值范围是 -2^31 到 2^31 - 1,大约是 -21亿到21亿。
          long:64位,取值范围是 -2^63 到 2^63 - 1,大约是 -9.22e+18到9.22e+18。
        浮点类型:
          float:32位,取值范围是大约 1.4e-45 到 3.4e+38。
          double:64位,取值范围是大约 4.9e-324 到 1.8e+308。
        字符类型:
          char:16位,取值范围是 U+0000(即0)到 U+FFFF。
        布尔类型:
          boolean:取值只能是 true 或 false。
        字符串类型:
          String:不是基本类型,是类类型,由字符序列组成。
        这些基本数据类型在Java中是原生的,直接由Java虚拟机支持,而不是通过类来实现的。
        它们是Java编程语言中最基本的数值和数据类型。

          字节码   比特位:bit 二进制 0 1
                   字节byte 是计算机分配内存最小单位 通常用B表示
                   1byte==8bits
          \n换行   \t缩进         


注意:
   1. 修改改环境变量
   1. 三个确定按钮都要点
   2. 重新打开cmd、vscode
  2. 编码
    1. 先保存
    2. 先编译 再运行x
  3. 中文乱码 VScode右下角 改为GBK
  4. 找不到主类
    1. 字节码文件生成没有
    2. java HelloWorld 命令对不对 文件名对不对
    3. CLASSPATH 的值不要写错 可以不写 或者写 .

******进制
   二进制    由0 1 组成 逢2进1
    0b1  0B0 
    0:0b0
    1:0b1
    2:0b10
    3:0b11
    4:0b100  
  八进制    由0-7组成 逢8进1
    00 07 
    7:07
    8:010
    9:011
  十进制    由0-9组成 逢10进1
   9     
   8+1 = 9 
   9+1 = 10 
  十六进制  由0-9 abcdef 不区分大小写 逢16进1
    10:0x0a
    11:0x0b
    17:0x11
    18:0x12
  进制转换    
      十进制转二进制 除二取余法
      十进制转八进制 除八取余法
      十进制转十六进制 除十六取余法

    20
  二进制   : 
  1. 20 ÷ 2 = 10 ... 0
  2. 10 ÷ 2 = 5  ... 0
  3.  5 ÷ 2 = 2  ... 1
  4.  2 ÷ 2 = 1  ... 0
  5.  1 ÷ 2 = 0  ... 1
  6. 结束 0b10100
  八进制   :
  1. 20 ÷ 8 = 2 ... 4
  2.  2 ÷ 8 = 0 ... 2
  3. 结束 024
  十六进制 :
  1. 20 ÷ 16 = 1 ... 4
  2.  1 ÷ 16 = 0 ... 1
  3. 结束 0x14

  0x99 转为十进制
    9 × 16 1次方 144
    9 × 16 0次方 9
    144+9

**********数据类型转换
  数据类型表示范围
  double > float > long > int > short > byte
                                char

  隐式类型转换
    在赋值过程中 小数据类型的值或者变量可以直接赋值给大类型变量,类型会自动转换
    大类型赋值给小类型可能会丢失精度 所以编译错误
    byte\short\char类型在做算术运算时会自动提升为int类型 然后再参与计算
    各种类型的值都参与运算时,范围小的会自动提升为范围大的,然后再运算

  强制类型转换(显式类型转换)
    定义
      赋值过程中如果大类型的值赋值给小类型变量,编译报错,可以使用强制类型转换
    格式
      float float1 = (float)3.14;
      float float2 = (float)((byte1 - 5) * short1 + double1);
    强制类型转换的时候 注意值的一个问题
操作符
  定义
    对于字面值常量和变量进行操作的符号
    也叫运算符
表达式
  定义
    用操作符将字面值常量或者变量连接起来的式子 叫表达式
运算符的分类
  算术运算符
    + - * / %
    %
      求余运算,结果正负符号只跟表达式运算符左边的操作数的符号有关
    + 
      表达式中只要有字符串参与,得到的结果都是字符串
      字符串加其他任意类型数据,结果都是字符串
      注意区分字符串和字符
    自增自减++ --
      前置
        ++a
      后置
        a++
  赋值运算符
    = *= <<= &= 等
    +=、-=、*=、/= 等扩展的赋值运算符,隐含了强制类型转换
    s += 5; // s = (short)(s + 5);
  比较、条件、关系 运算符 
    > < >= <= == !=  
    从键盘录入两个整型数字,比较其大小,输出结果 
  逻辑操作符
    && 与运算 带逻辑短路
     boolean flag =  (2 > 1) && (3 > 2)
      同真则真
      2 > 3 && 3 > 2
      2 > 1 && 3 > 4
      有假则假
    & 与运算
    ||带逻辑短路 
      true || false 结果为 true
      false || true 结果为 true
      有真则真
      false || false 结果为 false
      同假则假
    | 或运算
    ! 非 取反
     !true  
    ^ 异或
      如果两个数都是0 那么结果就是0
      如果两个数都是1 那么结果就是0
      如果两个一个为0一个为1 那么结果就是1
  三目运算符
    表达式?语句1:语句2
    书写简单,可读性比较低,不建议使用


  移位操作符
    >> << >>>
  位操作符 
    & | 

    从键盘录入两个整型值,判断能否被3和5整除
   

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值