Java基础知识总结(新手必看)

写代码
1.明确需求,也就是弄清楚我要做什么?
2.分析思路,也就是分析我要怎么去做?列出具体步骤。
3.确定步骤, 每个思路部分用到那些语句,方法和对象。
4.代码实现,通过Java语言代码把思路体现出来,实现需求。

一 java概述

1991年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;
1994年将Oak语言更名为Java。

1,Java的三种技术构架:

            **JAVAEE**:Java Platform Enterprise Edition,开发企业环境的应用程序,主要正对web程序开发;
            **JAVASE**:Java Platform Standard Edition,完成桌面应用程序的开发,是其他两者的基础;
            **JAVAME**:Java Platform Micro Edition,开发电子消费出产品和嵌入式设备,如手机中的程序;
        **1.JDK**:Java Development Kit,Java的开发和运行环境,Java的开发工具和jre。
        **2.JRE**:Java Runtime Environment,Java程序的运行环境,Java运行的所需的类库+JVM(Java虚拟机)。

3.配置环境变量:

    让Java jdk\bin 目录下的工具可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。

环境变量的配置

    1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk
                          path=%JAVA_HOME%\bin  
    2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin
    特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。
    classpath的配置:
        1):永久配置方式:classpath=.;c:\;e:\
        2):临时配置方式:set classpath=.;c:\;e:\
    注意:在定义classpath环境变量时,需要注意的情况
    如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件;
    如果指定了classpath,那么会在指定的目录下查找要运行的类文件。
    还会在当前目录找吗?两种情况:
        1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。
        2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。
        一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。

4,javac命令和java命令做什么事情呢?

要知道java是分两部分的:一个是编译,一个是运行。
javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。 生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。
java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.
一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数.

二 Java语法基础:

1.关键字:其实就是某一种计算机语言对于指定的单词赋予了特殊的含义。
特点:全部都是小写的英文单词。
2.保留字:没有定义用途,但保留备用。goto、const。
3.标识符:就是指程序当中取的名字

   包含:0-9 a-z  A-Z和美元符号以及下划线
   *注意事项:*
      1.类名,方法名,变量名,包名
      2.由字母,数字,下划线_和美元符号$组成
      3.不能以数字开头   Demo1 正确的    1Demo  错误的
      4.区分大小写
      5.长度没有限制
      6.不能使用JAVA当中的保留字和关键字。
   *命名规范:*
       1.驼峰式命名法
         类名要求  :首字母要求大写   Student    
                     如果包含多个单词 就要求多个单词的首字母都需要大写    SchoolNumber
         方法名要求:首字母要求小写
                     如果包含多个单词,第二个单词开始,后面的单词首字母都要大写  eatFood
         变量名要求: 一般都使用一个单词表示。都是小写字母。
                     如果一定需要多个单词,和方法名的命名要求相同。
         包名要求: 全部都要小写
       2.见名之意  (采用有意义的英文单词)
       3.长度一般不要超过15个字符。
**4.注释**

 *作用:* 1.注解,说明,解释
        2.可以用于调试程序
            当有错误但是没有找到错误的原因时,可以把错误所在的那行代码注释掉。
 好处:增强了阅读性
 *表现形式:*
     1.单行注释   //   在行的开始加上双斜线,这一行都会被注释掉。不会影响运行。
     2.多行注释   有开始,有结束    /* 注释的内容 */
     3.文档注释   java语言特有的注释,特点:通常可以对于程序进行说明,并且建立说明性文档。
        /* * ... */
        javadoc.exe 工具可以使程序当中的代码和文档注释提取出来,使得该注释成为代码的说明书。
 *细节性问题:*
     1.单行注释当中可以在定义单行注释
     2.单行注释当中可以在定义多行注释
     3.多行注释当中可以在定义单行注释
     4.多行注释当中不可以定义多行注释
     **5常量:**  

   不能被改变的数值   100   3.14
   JAVA当中常量的分类
   1.整数常量  :所有的整数
   2.小数常量  :所有的小数
   3.布尔型常量: 比较特殊,只有两个数值,true和false
   4.字符常量  :将一个数字字母或者符号使用单引号标      识('')。  'a'   '1'   ' '
   5.字符串常量:将一个或者多个字符使用双引号进行  标识("")。   "13"   "Hello world!"
   6.null常量  :只有一个数值就是null。
   对于整数常量,有四种表现形式。
   二进制 :包含元素0,1
   八进制 :包含元素0-7   必须以0开头
   十进制 :包含元素0-9
   十六进制 :包含的元素0-9  A-F    必须以0X或者0x开头

5.变量: 变化的数据

从专业角度:变量就是内存当中的存储区域。
变量的三要素: 类型,名称,数值
变量存储到内存当中的好处:数值是可变的。

为什么要定义变量呢?
用来不断的存放同一种类型的常量,变量的空间是可以不断的重复使用的。

什么时候需要定义变量呢?
一旦数据不确定,就定义变量,来作为存储的空间,随时的改变。

变量在JAVA当中的语法格式:
数据类型   变量名 = [初始化值];

变量数据类型的分类
 1.基本数据类型:
     数据类型   字节数    取值范围
        byte    1字节     -128 ~ 127 
        short   2字节     -215 ~ 215-1 
        int     4字节     -231 ~ 231-1 
        long    8字节     -263 ~ 263-1 
        float   4字节     -3.403E38~3.403E38 
        double  8字节     -1.798E308~1.798E308 
        char    2字节    0~65535
        boolean 1字节    true,false

 2.引用数据类型:
       类    接口    数组

6.JAVA当中常见运算符

        (1)算术运算符:+ 、 - 、 * 、 / 、 % 、 ++ 、 --
            对于单独一个数字进行自增运算,符号无论放在数字的左边还是右边,结果无区别。
            b = a++;
             运算过程  
                通过观察发现,a在前,++在后,说明除了本身的自增之外,还进行了其他的运算工作,比如赋值给b
                1.在内存当中先将a当中的数值进行临时的存储   temp = a;
                2.进行自增运算   a = a+1;   a = 4;
                3.将临时存储的变量的数值赋值给b   b = temp;
            b = ++a;
              运算过程:
                1.右边  a =a+1;   a=4
                2.左边  b = a;    b=4

    (2)赋值运算符:= 、 += 、 -= 、 *= 、 /= 、 %=
        short s = 8;
        s+=3;    //没问题  +=是赋值运算符,编译器会自动转换类型
        //s = s+3;   //会报错,可能缺失精度
        System.out.println("s="+s);
    (3)关系运算符:> 、 < 、 >= 、 <= 、 == 、 !=
        关系元素符得出的表达式结果是布尔类型的,要么是true,要么是false
    (4)逻辑运算符:! 、 & 、 | 、 ^ 、 && 、 ||
        逻辑运算符通常适用于连接两个关系运算符组成的表达式的,
        逻辑运算符最后的结果也是boolean类型的,要么是true,要么是false
        &  :同真则真,其余为假
                true  & true  = true
                false & true  = false;
                true  & false = false;
                false & false = false;
        |  :同假则假,其余为真
                true  | true  = true
                false | true  = true;
                true  | false = true;
                false | false = false;
        ^  :相同为假,不同为真
                true  ^ true  = false
                false ^ true  = true;
                true  ^ false = true;
                false ^ false = false;
        !  :用于取反
                ! true = false;
                ! false= true;
        &&特点:
              当左边的结果为false时,右边的结果就不参与运算了,直接输出结果为false,也过和&的结果是一致的,
              但是提高了效率。
        ||特点:
               当左边的结果为true时,右边的结果就不参与运算了,直接输出结果为true,也过和|结果是一致的,
              但是提高了效率。
    (5)位运算符:& 、 | 、 ^ 、 ~ 、 >> 、 << 、 >>>
       左移<<:乘以2的次幂的运算
       带符号右移>>:除以2的次幂的运算,右移会出现高位的空缺,原来是什么,就使用什么补充。
       无符号右移>>>:除以2的次幂的运算,右移会出现高位的空缺,无论原来的高位是什么,都是用0补充。
       左移和右移存在的意义就是为了简便计算机当中的乘法和除法。
    (6)字符串连接运算符:+
    (7)三目运算符:X ? Y : Z
        X为boolean类型表达式,先计算x的值,若为true,整个三目运算的结果为表达式y的值,
        否则整个运算结果为表达式z的值。

7.表达式:

    表达式是符合一定语法规则的运算符和操作数的序列 
    表达式的类型和值
    对表达式中操作数进行运算得到的结果称为表达式的值 
    表达式的值的数据类型即为表达式的类型 
    表达式的运算顺序
    首先应按照运算符的优先级从高到低的顺序进行 
    优先级相同的运算符按照事先约定的结合方向进行

8.语句的结构

       顺序结构  :从上到下依次执行。
       选择结构(分支结构):  if....else      switch.....case
       循环结构  :for......   while......    do....while...

选择结构
   if语句的三种语法结构
    if(条件语句){…}
    if (条件语句){…}else{…}
    if (条件语句){…}else if(条件语句){…}
    if (条件语句){…}else if(条件语句){…}else{…}
switch语句的语法格式
    switch(1){
        case 0: 语句块1;break;
        case 1:语句块2;break;
        case 2:语句块3;break;
        …
        case 取值n: 语句块n;break;
        default: 语句块n+1;break;
    }

备选答案并没有指定的顺序,但是执行肯定是从第一个case开始,
把每一个case执行完,如果其中有匹配的case值,就执行匹配的case对应的语句块。
如果没有匹配的case,那么就会执行default对应的语句块。

注意事项:
    一般情况下,每一个case语句块最后一定要写break语句,如果没有写break语句。
    就会把下面的内容视为case要执行的内容。直到遇到break为止。才会Switch语句。

switch语句有关规则
    表达式的返回值必须是下述几种类型之一:
                int, byte, char, short;
    case子句中的取值必须是常量,且所有case子句中的取值应是不同的;
    default子句是可选的;
    break语句用来在执行完一个case分支后使程序跳出switch语句块;

switch语句结束的情况有两种:
    1.执行到了break语句
    2.执行到了switch语句的结尾

if语句和switch语句的使用场景:
    1.如果对于具体的数值进行判断,使用if语句可以,使用switch语句也可以。建议使用switch语句。
    因为switch语句会把所有的备选答案加载进入到内存当中,选择的效率会更高。
    2.如果对于数据的区间进行判断,使用if语句。
    3.如果表达式的结果是boolean类型。毫无疑问,使用if语句。

函数

为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是Java中的函数。函数就是体现之一。

Java中的函数定义的格式

修饰符 返回值类型 函数名(参数类型1 形式参数1,参数类型2 形式参数2,…){
执行语句;
return 返回值;
}
当函数没有具体的返回值时,返回的返回值类型就用void关键字表示。此时return语句可以省略不写,系统会帮你自动加上。
return的作用:结束函数。结束功能。

如何定义一个函数

函数其实就是一个功能,定义函数其实就是实现功能,通过两个明确来完成:
(1)明确该功能的运算完的结果,其实就是明确这个函数的返回值类型。
(2)在实现该功能的过程中是否有位置内容参与运算,其实就是明确该函数的参数列表(参数类型&参数个数)。

函数的作用

(1)用于定义功能。
(2)用于封装代码,提高代码的复用性。
注意:函数中指只能调用函数,不能定义函数。
主函数
(1)保证该类函数的独立运行。
(2)因为它是程序的入口。
(3)因为它被JVM(虚拟机)调用。
重载的定义是:在一个类中,如果出现了两个或者两个以上的同名函数,只要它们的参数的个数,或者参数的类型不同,即可称之为该函数重载了。
如何区分重载:当函数同名时,只看参数列表。和返回值类型没关系。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值