java入门基础学习

首先了解一些简单操作:

比如打开DOS命令行?
    快捷方式:win+r 输入从 cmd 
    简单方式:开始--》cmd --》运行

常见命令:


    查看ip:ipconfig  ipconfig/all
    查看系统信息:systeminfo
    进入到系统盘符:盘符:  例如D:
    进入到具体目录: cd 目录名 例如:cd Java
    查看目录下面的所有文件:当前目录输入 dir
    返回上一级:cd .. // 空格不要忘记
    创建目录:md 目录名 例如:md toobug
    删除目录:rd 目录名
    根据后缀删除文件:del *.txt *代表通配符,.txt代表后缀
    创建一个记事本:notepad
    
---------------------------------------------

Java语言的特点:
    Java是面向对象的,同时还是支持跨平台以及开源,目前用的比较多的是Java8版本

Java 8 有如下优势:

  • 速度更快
  • 减少代码的 Lambda 表达式
  • 强大的 Stream API
  • 便于并行
  • 最大化减少空指针异常:Optional
  • Nashorn,JavaScript 引擎,允许我们在 JVM 上运行特定的 JavaScript 应用

Java的跨平台:
    Java的跨平台实际上是通过系统支持JVM来做的,只要你的计算机系统支持JVM,那么就
    可以支持Java的运行

JDK/JRE/JVM之间的关系:
    作用是什么?
        JDK:保证程序的开发环境
        JRE:保证JAVA的运行环境
        JVM:保证JAVA的跨平台性
    彼此之间的关系?
        JDK包含了JRE+开发工具
        JRE包含了JVM+核心类库

JDK的下载和安装以及卸载:
    下载:
        官网:http://www.oracle.org(甲骨文)
        百度:直接搜索JDK1.8 64 / 32位

    安装:
    卸载:

        A.绿色版 不需要卸载,直接删除整个相关的目录
        B.安装版 千万不要直接删除,必须一步一步的,通过相关的卸载软件或者系统的程序进行删除

JDK的安装目录的分析:
            bin:存到的是我们java开发工具的可执行文件
            db:sum公司自带的一个数据库,但是不会经常使用
            include:因为我们Java语言其实是C语言过渡来的,所以这个目录还保留一些C语言的文件,也就是本地的方法文件 不要乱删
            jre:存放java虚拟机(jvm)的文件
            lib:存放我们的核心类库
            src:java源文件,因为Java是开源的,所有的java的源代码开源在这里看到

第一个程序案例,HelloWorld    
    代码示例:
      

 class HelloWorld{
            public static void main(String [] args){
                System.out.println("HelloWorld!!");
            }    
        }


        程序的解释:
            1.java中最基本的是类,所以我们写任何java程序的时候都必须先定义一个类
                格式:class 类名
                举例:class HelloWorld
            2.我们JAVA所有执行的代码都应该在一个类的范围之内,所以我们需要用大括号来定义范围
            3.我们的java程序需要执行的话,就必须有一个主入口,这个主入口我们一般称之为主方法或者main方法
                格式:public static void main(String [] args){}
            4.我们现在的简单需求是输出一段文本,所以我们需要一个输出语句(打印语句)
                格式:System.out.println("HelloWorld!!");
                注意: "  "里面的内容是可以改动的
                
程序的运行:
        a.新建一个txt文件,将后缀改成java,编写java的源程序(*.java)
        b.找到源程序的位置,通过javac来编译字节码文件(.class)
        c.通过java命令来运行编译后的.class文件(不需要写上后缀)
                
程序编写的问题:
    1.我们的文件的扩展名无法的修改
        在win7当中,在文件的目录找到工具==》文件夹选项 ==》查看==》去除隐藏文件扩展名的勾勾去掉
    2.中文乱码
        中文乱码的主要原因是因为我们java的源文件字符集编码和DOS系统的字符集编码不一致,一般只需要将我们的java文件保存为UTF-8就可以
    3.找不到文件
        可能是后缀写错,没有写成.java文件,在编译的时候写错了文件名,甚至有可能是你丫的根本不在这个盘
    4.找不到符号
        java是一个健壮性的语言,他所有的字母都是严格区分大小写的,包括一切的标点符号
    5.javac不是内部命令,也不是可以执行的程序
        我们肯定没有配置好path环境的变量,或者是配置错误,检查好!!!!
    6.我们的类名可以不和java的源文件名一致,可以在符合命名规则的一切范围之内,但是我要求必须一致。

配置环境变量:
        DOS命令行寻找文件的步骤:
            现在你当前的目录去寻找,如果找到了就执行,如果找不到就去环境变量的path去寻找,如果找到了就执行,找不到就保报错
            
        我的电脑 ——》 右键属性 ——》 高级系统设置 ——》 环境变量设置  ——》系统变量设置
        新建 ——》 变量名:JAVA_HOME / 变量值:JDK的根目录

(例如:C:\Program Files\Java\jdk1.8.0_151)    
        设置Path路径,%JAVA_HOME%\bin ; %JAVA_HOME%\jre\bin

 

关键字(掌握)


    1.关键字是被java语言赋予特定含义的单词
    2.java关键字的特点是全部小写字母构成
    3.goto和const是保留关键字,目前没有使用到
    4.一般来说,高级记事本和编译器会对关键字有特殊的颜色标识
    
标识符:
    什么是标识符?
        给我们的类、接口、变量、常量、对象等取名字时候用的字符序列,因为在java当中,很多情况下是需要我们自己取名字,也被称之为自定义标识;
    标识符注意的细节:
        1.标识符的组成应该是在字母(a-z A-Z)/数字 (0-9) / 下划线(_) / 美元符号($)
        2.标识符不能以数字开头
        3.java中的标识符是严格区分大小写的
        4.严格来说,java中的标识符是不限制长度 但是我们在对标识符的命名的时候尽量做到简短
        5.我们的标识符的命名一定要做到见名之意
        6.关键字(包括保留关键字)不能作为任何的标识符

    
    常见的命名规则:
        1.包的命名 全部小写
            单级包:
                seehope
            多级包:以小数点隔开,一般是公司域名的倒叙+所关联业务的简称
                net.seehope.login
        2.类或者接口的命名:
            一个单词:首字母大写,其余小写
                Hello
            多个单词:每个单词的首字母大写,其余小写
                HelloWorld,StudentName
        3.方法和变量
            一个单词:全部小写
                nums
            多个单词:第一个单词全部小写,其次第二单词开始,所有单词的首字母大写
                studentName
        4.常量
            一个单词:全部大写
                NUMS
            多个单词:全部大写,每个单词之间用下划线隔开(_)
                STUDENT_NUMS
        
注释:
    注释就是对使用的程序进行解释说明,注释是写给程序员看的,java的编译器会自动的忽略所写的注释内容
    
注释的类型:
    单行注释:
        实现的方式: //注释内容
    多行注释:
        实现的方式: /* 注释内容 */
    文档注释:
        实现的方式: /** 注释内容 */
        
    注释需要注意的细节问题:
        1.单行注释是可以嵌套使用,多行注释是不可以嵌套的
        2.单行注释在情况允许的情况下一般放在代码的右边,多行注释一般放在代码的上面
        3.文档注释也可以作为多行注释使用
        
软件 = 数据 + 指令集 + 说明文档

常量:
    在程序的运行过程当中,其值不能发生改变的量我们将其称之为常量

    常量的分类:
        字面值常量:
            整数常量:所有的整数
                例如:150 260 370 480
            小数常量:所有的小数
                例如:13.14 25.28 37.69
            字符常量:只能存放一个字符,用单引号包裹起来
                例如:'帅' 'a' '0' '1' 
            字符串常量:里面可以存放所有的字符,没有明确的长度限制
                例如:" 大兄弟,好久不见 ^_^"
            布尔常量:比较特殊,只有true和false
                例如:true false 
            空常量:
                例如:null
            *目前我们说的字面值常量全部是放在输出语句里面的
        自定义常量:(面向对象讲解到)
        
但是在现实的生活当中,其实很多数据是不断的在发生改变的:
    比如:温度、游戏的数据
    
变量:
    在程序的执行过程当中,其值可以在一定范围内不断发生改变的量,叫做变量
    
    我们可以将变量比喻成一个容器。
    
    容器的特点?
        1.容量
        2.类型(存储不同类型的数据)
        3.名字
        
    变量的格式的定义:
        数据类型 变量名 = 初始化值;
        
    变量名:我们自己定义的标识符。变量的命名规范。首个单词全部小写,其次第二个单词开始,每个单词的首字母的大写,其余的小写
      在java当中。表示变量的类型以及大小全部是使用数据类型进行表示
    Java当中,数据类型的表示,我们一般分为4类八种;
    *Java是一种强类型语言,针对每种不同的数据都提供相对应的数据类型
    分类:
        a.基本数据类型:4类8种
        b.引用数据类型:类、接口、数组
    基本数据类型:
        A.整数                占用字节数            取值范围
            byte(字节)            1                -128 ~ +127
            short(短整型)        2                -2^15 ~+2^15-1
            int(整型)            4                -2^31 ~+2^31-1
            long(长整型)        8
        B.浮点数
            float                4
            double                8
        C.字符
            char                2        
        D.布尔
            boolean                1
            
        注意:
            一个整数如果没有加上任何的标识的时候,那么该整数默认的就是int类型的数据。
            如果说需要将一个整数赋值给一个长整数,那么该数据就需要在结尾处写上l或者L,以声明该数据为长整型。
    
        选用数据类型的原则:在能够满足条件的情况下,尽量选用小的数据类型,因为可以节省内存空间
        
        浮点数:
            float(单精度浮点数) 32bit
            double(双精度浮点数) 64bit
        注意:
            一个小数如果没有在结尾处加上任何标识,那么默认的就是double类型。如果需要将一个小数赋值给float类型
            需要在结尾处写上F或者f。

        当我们无法确定用什么数据类型的时候,我们一般整数就直接使用int类型,浮点数就直接使用double类型、
数据类型的转换:
    1.默认转换
        a.根据数据类型的大小,从小到大的自动转换 无需干预
        b.byte,short,char之间是不参与任何转换的,一旦参与运算会直接转换成int乐类型
        c.byte,short,char -->int-->long-->float-->double
    2.强制转换
        a.根据数据类型的大小,从大到小的需要强制转换
        b.强制转换有可能会损失精度,如果必要 不要强转
        c.格式
            目标数据类型 变量名 = (目标数据类型)(需要转换的数据)
  
1.  +是一个运算符,做加法用的
   
   默认类型转换(从小的数据到大的数据):
      从小的数据赋值给范围较大的数据,JVM会实现自动的类型转换,不需要手动操作
          A:byte、short、char< int < long < float < double
          B:byte、short、char互相之间不参与任何形式的转换,如果他们参与了运算会直接的提升为int类型
  boolean不参与任何形式的转换,也不参与任何形式的算数运算
  
2.面试题:
        byte b1 =3,b2 = 4,b;
        b = b1 + b2;
        b = 3 + 4;
        哪句会编译失败,为什么????
        b = b1 + b2;是有问题的
        因为变量的相加,首先会想判断你的数据类型是否兼容,byte类型参与运算是直接提升为int类型,所以实际上是拿一个int类型赋值给byte类型 所以需要强制类型转换
        b = 3 + 4;
        这一段是常量相加。常量是没有明确的数据类型,所以是先做加法再去赋值,然后在去看这个值的数据范围是否在数据类型的范围之内,如果超过就报错。


3.运算符:
         就是对常量和变量就进行操作的一种符号
     分类:算数运算符、赋值运算符、比较运算符、逻辑运算符、三目运算符、位运算(不具体去讲)
     
     算数运算符:
         + - * / % ++ --
        
4.++/--运算符的使用:
         单独使用:
             放在前面和放在后面的效果是一致的,他的作用就是自身+1或者-1
         参与运算的使用:
             放在操作数的前面,先自增或者自减然后再去参与运算
             放在操作数的后面,先参与运算然后再去自增或者自减
            
    ++和--的练习:
         第一题:
             int a = 10;
             int b = 10;
             int c = 10;

             a = b++;
             c = --a;
             b = ++a;
             a = c--;
         第二题:
             int x = 4;
             int y = (x++)+(++x)+(x*10);
             请分别计算x和y的值
            
5.赋值运算符:
        基本赋值运算符:=
            把=右边的值赋值给左边
            
        扩展运算符:+= -= *= /= %= 
            += 把左边的值和右边的值相加,然后赋值给左边


6.面试题:
         short s = 1;
         s = s + 1;
         -----------
         short s = 1;
         s += 1;
         上面的代码有没有问题,如果有问题给我详细的解释下。
         为什么第二个没有问题呢?
             扩展运算符其实隐含了一个强制类型转换的问题
             s += 1;不是等于s = s + 1;
             而是等于:s = (s的数据类型)(s+1);


7.比较运算符:
        == != > < <= >=
    特点:
        无论你的操作是简单或者复杂,比较运算符返回的结果永远都只能是boolean类型
        
8.逻辑运算符:逻辑运算符的主要作用于连接boolean表达式
     &(与,并且)
     规律:只有两边的布尔表达式的结果都是true,结果才是true否则就是false
    |(或,或者)
    规律:只有左右其中又一边是true,那么结果就是true,只有左右两边都是false的时候,结果才是false
    !(非)
    规律:取反,当true为false,当false的时候为true
    ^(异或)
    规律:两边的布尔表达式的结果不一致时,结果就为true,否则为false
    谈恋爱的情侣:
        男男 = fasle
        女女 = fasle
        男女 = true
        女男 = true
        
    短路与和短路或:
        &&(短路与)
        短路与跟单与的区别:
            相同点:他们得到的结果都是一样的
            不同点:如果使用的是短路与,左边的布尔表达式为fasle的时候,那么整个结果就为false 右边的表达式不再执行
                          如果使用的是单与,左边的表达式的结果为false,右边还要继续的执行,这样的话 效率不高
                          
        ||(短路或)
        短路或和单或的区别:
            相同点:他们得到的结果都是一样的
            不同点:使用短路或的时候,如果左边的表达式为true,那么整个结果就是true,右边的表达式不再执行
                          如果使用单或,不管左边的结果是true还是false,右边都需要继续执行,效率不高
                          
9.三目运算符(三元运算符)
     格式:
         比较表达式  ? 表达式1 : 表达式2;
         需要知道的是我们的比较表达式的返回结果必须是一个布尔类型
         执行的流程:
             1.根据比较表达式的值,看其返回的是true还是false
             2.如果返回的是true就执行表达式1
             3.如果返回的是false就执行表达式2
            
10.为了让我们的程序的数据录入更加的灵活,所以我们现在要学习键盘录入
     键盘的数据录入需要哪几步呢?
     第一步:导包
         格式:
             import java.util.Scanner;
         或者
             import java.util.*;
         位置:
             只要在class的上面就可以了
             
     第二步:创建键盘录入对象
         格式:
             Scanner sc = new Scanner(System.in);
         位置:
             在你需要使用的作用域当中即可,必须是使用它之前创建
             
     第三步:通过对象获取键盘录入的数据,并且用对应的数据类型来接收
         格式:
             int x = sc.nextInt();
            
11.if语句的格式:
          格式1:只能适用于一种情况下去使用
              if(判断条件语句){
                     语句体
              }
          执行流程:
              1.先根据判断条件语句返回的是true还是fasle
              2.如果是true就执行语句体
              3.如果是false就不执行语句体,继续执行语句体外面的代码
              
          格式2:适用于两种情况的执行
              if(判断条件语句){
                     语句体1
              }else{
                  语句体2
              }
          执行流程:
              1.先根据判断条件语句返回的是true还是fasle
              2.如果是true就执行语句体1
              2.如果是false就执行语句体2
          格式2的作用和我们之前使用的三目运算符非常的相似,那么如何选择呢?
          布尔表达式 ? "值1" : "值2"
          
          三目运算符的优点:简短,结构非常的清晰
          三目运算符的缺点:三目运算的语句体的支持非常单薄,例如就不能支持输出语句,其次三目运算符是必须要有一个变量进行存储,否则就不能使用其最终的结果值

         格式3:适用于多种情况下去使用
             if(判断条件语句1){
                 符合条件语句1的执行代码
             }else if(判断条件语句2){
                 符合条件语句1的执行代码
             }else if(判断条件语句3){
                 符合条件语句1的执行代码
             }... else{
                 当全部条件语句都不符合的时候执行的代码
             }
         执行流程:
             1.先判断条件语句1返回的是true还是false
             2.如果判断条件语句1返回的true就执行符合条件语句1的执行代码,并且结束这个分支结构
             3.如果判断条件语句1返回的false就往下面去执行判断条件语句2..... 知道为true的时候才停止执行
             4.如果都不成立,都为false的时候就执行else的代码块,这个不是必须要写
             
         格式4:
             if(判断条件语句){
                 if(判断条件语句){
                 
                 }
                 if(判断条件语句){
                 
                 }
             }else{
                 if(判断条件语句){
                     
                     }
             }
 
        if语句的注意事项;
            a.判断条件语句的操作不论简单与否必须返回布尔类型
            b.if语句体里面如果只有一条语句,你是可以省略大括号的,如果是多条必须写上,但是建议永远不要省略
            c.else后面如果没有if,是不会出现比较表达式的
            d.格式3的if。其实执行的只是一个语句,其中只要一条被执行,其他的都不会执行        
     
12.方法
    方法:就是完成指定功能的代码块
        需要注意的是在其他语言中方法被称之为函数。
    格式:
        修饰符 返回值类型 方法名(参数类型 参数名){
            方法体语句;
            return 返回值;
        }


    修饰符:目前我们只需要使用到public static就可以了
    返回值类型:就是你这个方法需要返回的数据类型
    方法名:就是这个方法的名字
    参数类型:就是参数的数据类型(这里的参数我们称之为形参)
            参数的分类:
                形式参数:定义在方法上面的,用于接受实际参数的变量
                实际参数:就是实际参与运算参数
    参数名:就是参数的名字相当于变量名
    方法体语句:就是完成功能的代码块
    return:结束方法
    返回值:返回给调用者的具体的值,由return带回
    
    如果想要写好一个方法,我们需要明确两个东西:
             a.返回值类型
                 结果的数据类型
             b.参数列表
                 你要传递几个参数过来,以及每个参数的数据类型是什么
                 
     如何调用:
             a.单独调用,一般来说 在有明确的返回值的时候没有什么意义
             b.输出调用,但是不够好,因为返回的数据没有办法二次利用
             c.赋值调用,推荐方法
            
    法的注意事项:
        a.方法不调用永不执行
        b.方法和方法之间是平级关系,不能存在嵌套
        c.方法在调用的时候,不能继续明确数据类型
        d.方法里面的多个参数必须用逗号隔开
        e.如果你的方法有明确的返回值,就一定需要return带回一个值
        
    void的无返回值的调用:
         单独调用 (正确)直接运行方法
         输出调用(错误)
         赋值调用(错误)
        
    需求:我要求数据之和
     我们滴需求是不断的发生改变的,于是呢 我们就定义多个求和的方法
     但是呢,我们之前在标识符命名的时候 讲过一个问题,我们取名字的时候 要达到见名之意的效果
     那么,肿么办?
     针对这种情况,java提供了一个方法功能相同,参数名也可以相同,参数列表可以不同的做法
     这种做法有一个专业的名词,叫做:方法重载
     
     方法的重载:
         在同一类中,方法名相同,参数列表不同。与返回值类型无关
         
         参数列表不同:
             A.参数的个数不同
             B.参数的类型不同
            

    字符串的方法:
        s1.length() 返回此字符串的长度
        
    字符串的特点:
        一旦赋值就不能发生改变
        
    String s = new String("hello");
    String s = "hello"//有没有区别?
    有,前者创建2个对象,后者才创建了一个对象    
    
    ==:在字符串中比较的是地址值是否相同
     equals:比较的是内容是否相等
     
     字符串如果是变量相加,先开辟空间 再去拼接
     字符串如果是常量相加。是先加,然后去常量池中去寻找,如果常量池当中有就直接返回,没有就再次创建
    
13.    为了对基本数据类型进行更多的操作,Java就为每一种基本数据类型提供对应包装类
    byte    Byte
    short    Short
    int        Integer
    float    Float
    long    Long
    double    Double
    char    Character
    boolean    Boolean
    
    用户基本数据类型和包装数据类型的自由转换
    
    JDK5的新特性:
        自动装箱:把基本类型自动转换成包装类型(无需干预)
        自动拆箱:把包装类型自动转换成基本类型(无需干预)
        
    注意:Integer的直接赋值,如果数据在-128到127之间,会直接的从缓冲池里面获取
     
//通过反编译源码。我们就知道了针对-128到正的127之间的数据做了一个缓冲池,如果数据是缓冲池的范围内,并不是每次
都会创建空间 所以他们针对的都是同一个地址

    
14.Date:表示特定的瞬间,精确到毫秒     

构造方法:
         Date():根据当前的默认的毫秒值创建日期对象
         Date(long date):根据指定的毫秒值来创建日期对象
        
    格式化时间:
        //输入你的出生日期,计算你在这个地球上火了多少天
        //创建日期对象
        Date date4 = new Date();
        //创建格式化对象
        //给定模式
      

  SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        System.out.println(sdf.format(date4));
        


 

                    

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java入门基础知识是学习和理解Java编程语言的基础概念和语法规则。下面是一些常见的基础知识点: 1. Java环境安装:首先需要安装Java开发工具包(JDK),它包含了Java编译器和运行时环境。 2. Java语言特点:Java是一种面向对象的编程语言,具有简单、可移植、面向对象、安全、高性能等特点。 3. Java程序结构:一个Java程序由一个或多个类组成,每个类包含方法和属性。Java程序从main()方法开始执行。 4. 数据类型:Java提供了基本数据类型(如整数、浮点数、字符、布尔等)和引用数据类型(如类、数组、接口等)。 5. 变量和常量:变量是用于存储数据的内存位置,常量是固定不变的值。在Java中,使用关键字来声明变量和常量。 6. 运算符:Java提供了各种运算符,例如算术运算符、赋值运算符、比较运算符、逻辑运算符等。 7. 控制流程:Java提供了条件语句(如if-else、switch-case)、循环语句(如for、while、do-while)和跳转语句(如break、continue)来控制程序的执行流程。 8. 数组:数组是一种存储相同类型数据的集合,可以通过索引访问数组中的元素。 9. 方法:方法是一段可重用的代码块,用于执行特定的任务。Java中可以定义自己的方法,也可以使用已经存在的方法。 10. 异常处理:Java提供了异常处理机制来处理程序运行过程中发生的异常情况,可以使用try-catch语句块来捕获和处理异常。 以上是Java入门基础知识的一些主要内容,希望对你有所帮助。如果有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值