java控制台 编译、运行 第一章知识点总结

第一章:
 1、Windokws相关DOS命令
 *DOS命令窗口打开:windows+R--输入cmd--回车
 *常见DOS命令:
 (1)exit 退出当前命令窗口
 (2)cls 清屏
 (3)DOS窗口中的内容复制?
     在DOS点击点击位置,再点击鼠标右键,然后选择标记,接下来选中要复制的内容,在窗口在任意位置点击右键,此时被复制的内容已到剪切板。
 (4)dir 列出当前目录下所有子文件/子目录
 (5)cd命令改变目录
     怎样用:cd +目录路径
     路径包括:相对路径和绝对路径
     相对路径:表示在从前的路径下作为出发点的路径
       假设当前所在路径C:\Users\DELL,那么此时输入cd Desktop,那么Desktop就是一个相对路径,从当前所在的C:\Users\DELL作为出发点,开始找Desktop目录。
     绝对路径:表示从某个磁盘的盘符下作为出发点的路径  如:C:\Users\
 (5)cd .. 回到上级目录
      cd \ 直接回到根目录
 (6)怎么切换盘符
      c: 回车
      e:回车
      d:回车
 (7)java包括3大板块:
      javaSE(java标准版) 基础
      javaEE(java企业版)
      javaME(java微型版)内核程序开发
      
 (8)什么是JDK?
      java开发包工具
      下载地址:htpp://www.oracle.com
      
      java语言特性【开源、免费、纯面相对象、跨平台】
      *简单性
       java不再支持多继承,c++是支持多继承,多继承比较复杂
       c++有指针,java中屏蔽了指针的概念
      *面向对象
      *可移植性
       程序一次编译,到处运行,也就是说程序可以再windows操作系统中运行,不作任何修改,直接放到Linux操作系统
       上运行,这个称为java的可移植性,也叫做跨平台
         windows操作系统和Linux操作系统内核不同,两个操作系统执行原理也是不一样的,显然java程序不能和操作系统
         打交道,可以让java程序运行在java虚拟机,简称JVM,java虚拟机在和底层的操作系统打交道。
      *多线程性
      *健壮性
        java运行过程产生的垃圾是自动收回的,不需要程序员关心
      *安全性 
  (9)java运行:编译阶段,运行阶段
      *编译阶段主要任务检查java源程序是否符合java语法,符合责则生成正常的字节码文件(**.class)。
      java程序需要在使用JDK自带的javac.exe命令进行java程序的编译。
        javac怎么用呢?
    -在DOS命令窗口中使用
    -javac使用规则:
      javac java源文件的路径
       javac是一个java编译器工具/命令。
       *一个java源文件(**.java)可以生成多个.class文件
       *编译结束之后,可以将.class文件拷贝到其他系统当中运行【跨平台】
(10)运行阶段【可以在其操作系统当中,跨平台】
     -JDK安装之后,除了一个自带的javac.exe命令之外,还有另一个命令,叫做java.exe,java.exe命令
     主要负责运阶段。
     *java.exe在哪里用?怎么用?
      -在DOS窗口中
      -  java 类名
        例如:磁盘上有一个A.class,那么就这样用:java A
     运行过程:
    【 *打开DOS命令窗口
     *输入:java A
     *java.exe命令会启动java虚拟机(JVM),JVM会启动类加载器classloader
     *classloader会去硬盘上搜索A.class文件,找到该文件则将该字节码文件装载到JVM当中。
     *JVM将A.class字节码文件解释成二进制1010101010这样的数据。
     *然后操作系统执行二进制和底层硬件平台进行交互。】
11.JDK是java开发工具包。JRE是java运行时环境。JVM是java虚拟机,java程序最终运行在
java虚拟机。
JRE包括JVM。JRE是单独运行的软件,JDK是单独运行的软件,JVM没有单独软件去安装。
JDK里面自带JRE,
不在这台电脑上做java开发没必要安装JDK,只需安装JRE,只在这台电脑上运行这个程序。
13.开始第一个程序的运行:
   JDK/bin:该目录下放了很多命令,例如javac.exe,负责编译和java.exe 负责运行
  (1)新建HelloWord.java源文件:
  public class HelloWord{
      public static void main(String[] args){
          system.out.printIn("Hello Word!");
      }
  }
  (2)将HelloWord.java源程序通过javac工具进行编译;
    -首先解决javac可用不可用:打开DOS命令窗口,直接输入javac,然后敲回车,出现以下:
       javac不是内部或外部命令,也不是可运行的程序或批处理文件。
       原因:windows操作系统无法找到javac命令文件
       解决:ipconfig 命令查询IP地址 
             windows操作系统是如何搜索硬盘上的某个命令?
         首先会从当前目录下搜索,如果搜索不到,会从环境变量path指定的路径当中搜索某个命令
         如果都搜索不到报错。
             配置环境变量:
         path环境变量与java语言没有关系,path环境变量是windows操作系统的一个知识点。path
         环境变量是专门给windows操作系统指路的
         *javac要想随意使用,需要将java所在的目录配置到环境变量path中;
    javac命令怎么用?
    java java源文件路径  注意:路径包括相对路径和绝对路径都可以。
    javac  把java源文件拖过来
    编译成功后会生成一个***.class文件。
   (3)运行java程序:
   使用方法:java 类名  硬盘上有HelloWord.class,那么类名就是:HelloWord
            java HelloWord  
        -首先需要先将DOS窗口目录切换到HelloWord.class文件所在目录
        -然后直接执行java HelloWord
14.ClassLoader是在那个位置上搜索HelloWord.class字节码文件呢?classpath环境变量ClassLoader
类加载器指路的
   默认情况下,ClassLoder从当前路径下加载字节码文件
   当然也可以让ClassLoder去指定的路径下加载字节码文件,这是需要配置环境变量classpath
   classpath环境变量属于java语言中的环境变量,不属于windows操作系统

   怎样配置:点击我的电脑右键--高级系统设置-高级-环境变量
15.注释:
   单行注释:只注释当前行  //
   多行注释:/*
                多行注释
        多行注释
        ...
              */
    文档注释
   javadoc注释:/**
                * jacadoc注释
        * javadoc注释
        ...
        */
        注意:这种注释是比较专业注释,该注释信息会被javadoc.exe工具解析提取
        会生成一个帮助文档。
 程序解析:
   public class HelloWord{ //表示定义一个公开的类,起名HelloWord,类名必须和源文件名称一致
      //类体
      类体中不允许直接编写java语句,【除声明变量之外】
      /*
        public表示公开的
    static表示静态的
    void表示空,方法结束之后不凡回任何数据
    main表示方法名是main
       (String[] args)是一个main方法的形式参数类列表,其中String[]是一种引用数据类型
       以下是程序的执行入口:
       */
      public static void main(String[] args){ //表示定义一个公开的静态的主方法,是程序
      的执行入口,main是方法名,args是局部变量名,变量名是随意的。
         //方法体
     //方法体
     //方法体

      //java语句,以分号结尾,必须是半角分号,以下代码的作用是【向控制台输出一段信息】
          system.out.printIn("Hello Word!");
      }
  }
  //public表示公开的
  //class表示定义一个类
  //HelloWord表示一个类名
  类体中不能编写java语句;
  方法体中可以编写多条java语句;
  主方法是程序入口,固定写法,SUM规定的。
16.public class和class的区别;
   *一个java源文件当中可以定义多个class
   *一个java源文件当中public的class不是必须的
   *一个class会定义生成一个xxx.class字节码文件
   *一个java源文件当中定义公开的类的话,public的class只能有一个,并且该类名必须和
   java源文件名称一致
   *每一个class当中都可以编写main主方法,都可以设定程序的入口,想要执行B.class中
   的主方法:
   java B,
   *注意:当在命令窗口中执行java Hello,那么要求Hello.class当中必须有主方法,没有主方法会出现
   运行错误。
第二章:java语言基础,编程语言通用

标识符命名规则:
由数字、字母、下划线、美元符号组成,其他符号不可以
必须以字母、下划线、美元符号开头,不能以数字开头
17.标识符:在java源程序凡是可以自己命名的单词,可以标识类名、方法名、变量名、接口名、常量名...
命名规范:
 *最好见名知意
 *遵守驼峰命名方式
 *类名、接口名:首字母大写,后面每个单词首字母大写。
 *变量名、方法名:首字母小写,后面每个单词首字母大写。
 *常量名:全部大写
 合法             不合法
 -------------------------
 _123Test         123Test
 A_B_C            HelloWord!//特殊符号
 $ABC             HelloWord//特殊符号
 class1           Hello Word//空格
 public0          class//关键字
 HelloWord        public//关键字
 18.关键字:
 19.字面值:
    -10、100   属于整数型字面值 
    -3.14      属于浮点型字面值 
    -"abc"     属于字符串型字面值
    -'a'       属于字符型字面值
    -true、false 属于布尔型字面值
    *字面值就是数据,是Java源程序的组成部分,数据有数据类型
20.变量:必须先赋值才能访问。
*变量本质上来说是内存中的一块空间,这块空间有“数据类型、名字、有字面值”
*变量包含三部分:数据类型、名称、字面值
*变量是内存中存储数据的基本单元
数据类型作用:
*不同的数据有不同的数据类型,不同的数据类型底层会分配不同大小的空间
*数据类型是指导程序在运行阶段应该该数据分配多大的内存空间
变量要求:变量中存储的具体数据必须和变量的数据类型一致,当不一致会报错
*声明变量格式:
     数据类型 变量名;
*通常访问一个变量包括两种访问形式:
  第一种:读取变量中保存的具体数据  get获取
  第二种:修改变量中保存的具体数据 set设置
*一行上可以同时声明多个变量:
如:int a,b,c
但不能同时赋值int a,b,c=100;错误
*在同一个【作用域】当中,变量不能重名,但是变量可以重新赋值。
  public class VarTest02
  {
   static int k;//static必须加
   System.out.printIn(k);//成员变量不赋值也可以访问
     public static void main(String[] args){
     int i=100;
     system.out.printIn(i);
     i=200;/重新赋值
     system.out.printIn(i);
     以下代码错误变量名重名
     /*int i=90;
     system.out.plrintIn(i);*/
     }
  }
*变量的作用域:变量的有效范围,在什么范围之内有效,不能出{},变量i,在整个main方法当中是
有效的.
*变量的分类:
 局部变量:在方法体内声明的变量
 成员变量:在方法体外声明的变量
*成员变量没有手动赋值系统会默认赋值,局部变量不会不赋值会报错。
八种数据类型默认值一切向0看齐:
数据类型                       默认值
 byte,short,int,long          0
 float,double                   0.0
 boolean                         false
 char                            \u0000  什么也没有
 8种数据类型一切向0看齐
21.数据类型:
 -基本数据类型:四大类八小种
   第一类:整数型
       byte,short,int,long
   第二类:浮点型
       float,double
   第三类:布尔型
      boolean
   第四类:字符型
      char
 -引用数据类型: 
   类,接口,数组..
   字符串不属于基本数据类型,属于引用数据类型
基本数据类型      占用空间(字节)
 byte               1
 short              2
 int                4
 long               8

 float              4
 double             8

 boolean            1

 char               2
字节(byte):
1 byte=8 bite  【一个字节=8个比特位】1个比特位表示一个二进制位:1/0
1KB=1024Byte
1MB=1024KB
1GB=1024MB
1TB=1024GB
关于java中数字类型,数字都有正负之分,所以在数字的二进制当中有一个二进制位称为符号位
并且这个符号位在所有二进制位的最左边,0表示正数,1表示负数

byte类型最大值:01111111  整数
                【00000000 00000000 00000000 10000000减去1】
        结果:【00000000 00000000 00000000 011111111】
byte最大值:2的7次方-1,结果127
byte最小值:-128
byte类型取值范围[-128-127],byte类型表示256个不同的数字[256个不同的二进制]

计算机只认识二进制,那么计算机怎么表示世界中的文字呢?
 8种数据类型当中,byte short int long float double boolean 这7种数据类型计算机在表示
 的时候比较容易,因为底层都是数字,十进制的数字和二进制之间存在一种固定的转换机制规则。
 但是char类型表示的是现实世界中的文字,文字和计算机二进制之间默认情况下不存在任何转换关系
 为了让计算机可以表示现实世界当中的文字,我们需要人为的干涉,需要人负责提前制定好文字和二
 进制之间的对照关系,这种对照关系称为:字符编码
 计算机最初只支持英文,最先出现的字符编码是:ASCII码
 ‘a’--97【01100001】
 ‘A’--65
 ‘0’--48
 ‘a’--解码--01100001
 01100001--按照ASCII  编码--‘a’
 编码和解码采用一套字典/对照表,当采用的不是一套对照表,会出现乱码问题
*随着计算机的发展,后来出现了一种编码方式,是由国际ISO制定,这种编码方式
支持西欧语言,向上兼容ASCII码仍不支持中文这种编码是:ISO-8859-1 又被称latin-1
*随着计算机向亚洲发展,计算机开始支持中文、日文韩文等其中支持繁体中文编码方式:
GB2312<GBK<GB18030
*支持繁体中文:大五码<big5>
*后来出现一种统一编码方式统一了全球所有文字,容量较大,这种编码方式叫:unicode编码
多种具体实现:
  -UTF-8
  -UTF-16
  -UTF-32
  ...
*java语言采用的是unicode编码方式,所以‘标识符’可以用中文
*现在实际开发中,一般使用UTF-8编码方式较多
22.8种数据类型的取值范围:
---------------------------
byte             [-128~127]  2的7次方—1
short            [-32768~32767]  2的15次方-1
int              [-2147483648~2147483647]
long
float
double
boolean          [true,false]
char             [0~65535]  2的16次方-1
注意:short和char所表示的种类是一样的,只不过char可以表示更大的正整数,以为char
没有负数
23.char类型:

public class DateTypeTest01
{
   public static void main(String[] args){
     char c='a';
     System.out.printIn(c);
     char x='国';
     System.out.printIn(x);
     //一个中文占2个字节,char数据类型正好占2个字节,所以java中char类型可以储存个字节
     char y='ab';
     //编译错误,ab是字符串
     char a="a";
     //"a"是字符串,a变量是char类型,类型不兼容,编译错误
   }
}

24.转义字符:\出现在特殊字符之前,可以将特殊字符转换成普通字符
\n  换行符
\t  制表符
\'  普通单引号
\\  普通反斜杠
\"  普通双引号
public class DateTypeTest02{
     public static void main(String[] args){
       char c1='n';
       System.out.printIn(c1);
       //输出字符n
       char c2='\n';//反斜杠在java语言中具有转义功能,\n表示换行
       System.out.print("Hello");
       System.out.printIn("World!");
       //结果HelloWorld,在同一行
       System.out.printIn("Hello");
       System.out.printIn("World!");
       //结果:Hello
               World! 换行了
       //System.out.print(); System.out.printIn();区别:printIn输出后换行,
       print表示输出但不换行

       char y='\t' ;
       System.out.printIn(y);//表示制表符 Tab,显示跟空格差不多,但是不同他们的ASCII码不同


//  \可以将后面单引号转义成不具备特殊含义的普通单引号字符,左边单引号缺少了结束单引号
字符,编译报错
       char k='\';
       System.out.printIn(k);
 
       char m='\u4e2d';//'中'对应unicode编码 4e2d  \u表示后面一串数字是某个文字的unicode编码
       System.out.printIn(m);
     }
}

十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19  1a 1b 1c 1d 1e 1f 20
八进制:0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20...

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

喵俺第一专栏

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

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

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

打赏作者

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

抵扣说明:

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

余额充值