第一章 JAVA基础知识笔记

第一章 JAVA基础知识
1.1 java基本信息
JAVA:是一种面向Internet的编程语言
特点:简单易学,完全面对对象,与平台无关

Java语言的三种技术架构: 
    J2EE:企业版
    J2SE:标准版
    J2ME:小型版

人机交互:图形界面交互
    命令行交互

1.2 Java语言的特点:跨平台性
    有JVM,同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了
Java程序的跨平台性。java具有良好的可移植性。

1.3JRE JDK
JRE:java运行环境。
    包括java虚拟机和java程序所需的核心类库
JDK:java开发工具包
    其中包括了java的开发工具 也包括了JRE 所以安装了JDK 就不用单独安装JRE了。
使用jdk开发完成的java程序 交给jre与运行

1.3.2 环境变量配置jdk:将jdk存储的路径放入path
    配置好后,在cmd中输入javac验证。
    设置path临时环境变量:cmd中set命令

1.4 第一个程序 Hello World
    1.将java代码编写到扩展名为.java的文件中。
    2.通过javac命令对java文件进行编译
    3.通过java命令对生成的class文件进行运行。
    注:运行程序时候才会调用虚拟机,编译程序时不会。
1.5设置classpath
set classpath=c:\ jvm会在classpath中寻找.class中
如果set classpath=c:\;则会在当前目录找。
set _;c:\;从当前目录先找 然后从c盘找

--------------------------------------------------------------------
第二章 java语言基础
2.1关键字
关键字一般小写 类名大写1
2.2标识符
由26个英文字母大小写,数字0-9 符号_$组成
注:数字不可以开头 不可以使用关键字
2.3注释:数字不编译
    a.单行注释//
    b.多行注释/* */
    c:文档注释/** 文档中所写的文件可以通过javadoc提取 */
    程序第一步应该写多行注释:/*需求*/
2.4.常量和变量
    常量:表示不能改变的数值。
    分类:
        整数常量。所有整数
        小数常量
        布尔型常量;true false;
        字符常量。将一个数字字母或者符号用单引号('')标识
        字符串常量
        null常量
    对于整数:四种表现形式。
        二进制:0,1,满2进1
        负数的二进制表现形式:这个数的整数按位取反加一。
        
        八进制:0-7;满8进1;用0开头标识  三个二进制位是一个八进制位 0开头
        十进制 满10进1
        十六进制 0-9 A-F 满16进1;用0x开头  四个进制为为一个16进制位 0x开头
        byte 字节=8个二进制位
        1K=1024B

    变量:作用域{   变量  }  变量要进行初始化,要不然不能参与运算 要注意作用域。
        概念:      内存中的一个存储区域
            该区域有自己的名称(变量名)和类型(数据类型)
            该区域的数据可以在同一类型范围内不断变化。

    数据类型:
        1.基本数据类型
            整数:byte(8位)、short(16位)、int(32位;默认)、long(64位加l)
            浮点型:float(4个自己 加f),double(8个字节)
            字符型:char(2个字节 0——65535,无符号。)
            布尔型:boolean
            
            类型转换:例如byte类型+int类型 byte会自动提升为int类型。
        2.引用数据类型
    
2.5运算符
    算术运算符 +- * /  %(求余运算)  +(连接符)
        // ++(自增)  --(自减) 
    赋值运算符
    比较运算符
        比较运算符,运算完的结果必须是true或者false
        instanceof 检查是否是类的对象。

    逻辑运算符
        用于连接两个Boolean类型的表达式。
        &:与  两边表达式都会判断 两边为真则为真 否则为假
        |:或 两边表达式都会判断。两边为假则为假 否则为真
        &&短路与:当左边式子为假则整个表达式为假,不会判断右表达式
        ||:短路或:当左边式子为真则整个表达式为真,不会判断右表达式    
        ^异或:和或有点不一样:true ^ true =false; 异或两边结果相同为false;
            一个数异或同一个数两次,结果还是这个数。    
        !非运算:!true = false;
    位运算符:用于2进位运算的符号
        <<:左移几位 相当于该数据的2的几次方。
        >>:右移 该数据除以2的几次方。高位 空位都是用1补。
        >>>:高数出现的空位,无论原高位是什么 空位都是用0补。
        &:6&3 :   0110&0011 = 0010=2; 整数是32位相与
        |: 6|3:    110|011=111=7
        ^: 6^3    110^011 = 101 = 5

    练习:对两个整数变量进行互换(不需要第三方变量)
    int a=3,b=5;
    a=a+b;
    b=a-b;
    a=a-b;
    //建议不要使用,如果两个整数的数值过大会超出int范围 会强制转换。数据回变化

    面试的时候用。
     a = a^b;//a=3^5;
     b=a^b;//b=(3^5)^3;a=5;
     a=a^b;(3^5)^3;a=5;

    三元运算符:
        获取两个数中的最大数
        int x =3,y = 4,z;
        z = (x>y)?x:y;//z变量存储的就是其中的最大数
2.6语句
    if语句:三种格式
        1.if(条件表达式){
            执行语句:
        }
        2..if(条件表达式){//三元运算符就是if else语句简写格式(当运算之后有一个具体的结果可以选择三元运算符)
            执行语句:
        }else{
            执行语句:
        }
        3.if(条件表达式){
            执行语句:
        }else if{
            执行语句:
        }else{
            执行语句。
        }
            
    局部代码块:可以定义局部变量的生命周期。变量只在这个代码块中有作用

    选择结构:switch 语句
        格式:switch(表达式){//byte short int char
            case 取值1:
                执行语句;
                break;
            case 取值2:
                执行语句;
                break;
            default://无论default放假哪个位置 肯定最后执行default 
                执行语句;
                break;
        }
    
    if和switch的区别:
        if:
            1.对具体的值进行判断
            2.对区间判断
            3.对运算结果是boolean类型表达式进行判断
        switch:
            1.对具体的值进行判断    
            2.值的个数通常是固定的。
            对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的
            答案都加载进内存,效率相对高一点。
            3.缺点:书写麻烦。
    循环结构:练习题:1~100之间 6的倍数出现的次数
        while语句: 当表达式为真的话会重复执行,未假则循环结束。
            while(表达式){
                执行语句
            }
        do...while:先执行语句再判断。
            do{
                执行语句
            }while(表达式);

        for循环:
            for(初始化表达式;循环条件表达式;循环后的操作表达式){
                执行语句;(循环结构)
            }
        
        for和while的特点:
        1.for和while可以互换。
        2.格式上的不同 。 for如果需要变量控制循环,该变量只作为循环增量存在时 
        只在for循环中有效 while结束后还可以使用该变量  

    循环小结:
        1.当对某些代码执行很多次时,使用循环结构完成。
        当对一个条件进行一次判断时,可以使用if语句
        当对一个条件进行多次判断时,可以使用while语句
        
        使用循环时,需要明确哪些语句需要参与循环,哪些不需要。
        循环通常情况下,需要定义条件需要控制次数。
    
    转移至符    //      \n回车  \t制表符    \b退格  \r按下回车键
        //    在Linux中回车符是\n,window是 \r\n;

    break和continue:
        break(跳出):作用范围要么是switch,要么是循环语句
            注:当break语句单独存在时,下面不要定义其它语句,因为执行不到。
            break是跳出所在的当前循环。
            for循环可以取别名:break 通过标志名跳出其循环
                yonna:for(;;){
                    gakki:for(;;){
                        break yoona;//直接跳出外循环。
                    }
                }
        continue(继续):作用范围:循环结构。
            效果:结束本次循环,继续下次循环。
            当continue语句单独存在时,下面不要定义其它语句,因为执行不到。
2.7函数
    定义:在类中具有特定功能的一段独立小程序,也成为方法。
    格式:
        修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2)
        {
            执行语句;
            return返回值;//返回值的类型与规定的返回值类型应一致
        }
        也可以没有返回值类型 void 和形参 :
        public void print(){System.out.println("Hello");}//void用于没有返回值时。
    
    函数的特点:1.将功能代码进行封装
        2.便于对该功能进行复用
        3.函数只有被调用才能执行。
        4.提高代码的复用性
        5.对于函数没有具体返回值的情况,返回值类型用关键字void表示,
        那么该函数中的return语句如果在最后一行可以不写。
        注意:函数中不能定义其它函数。
                 函数的结果应该返回给调用者,交由调用者处理。
                 返回值和参数没有关系
    
    函数内存加载过程
    函数的重载:
        在同一个类中,允许存在一个以上同名函数,只要它们的参数个数或参数类型不同即可
        1.同一个类
        2.同名。
        3.参数个数不同或者参数类型不同
        4.函数重载和返回值类型无关。
        5.如果出现不确定性 编译会失败。
2.8数组
    概念:同一种类型数据的集合。数组是一个容器。
    优点:自动给数组中的元素从0开始编号,方便操作这些元素。
    格式1:
        元素类型[] 数组名 = new 元素类型[元素个数或数组长度]
        int[] arr = new int[5];
    格式2:
        元素类型[] 数组名 = new 元素类型[]{元素,元素,....};
        int[] arr = new int[]{1,2,3,4,5};
        int[] arr = {1,2,3,4,5};
    局部代码块:{//局部代码块。限定局部变量的生命周期
            执行体;
        }
    内存划分:
        1.寄存器。
        2.本地方法区
        3.方法区
        4.栈内存
            存储的都是局部变量。
            而且变量所属的作用域一旦结束,该变量就自动释放。
        5.堆内存
            存储的是数组或对象(其实数组就是对象)凡是new建立的都在堆中。
            特点:1.每一个实体都有首地址值
                2.堆内存中的每一个变量都有默认初始化值。
                整数0,小数0.0 ,0.0f boolean false,char '\u0000';
                3.垃圾回收机制。
    数组遍历:
        注:对操作最基本的动作是存和取。
        核心思想:就是对角标的操作
        求数组的长度:arr.length;
        数组的使用情况:如果数据出现了对应关系,而且对应关系的一方是有序的数字编号。
        并作为下标使用,要使用数组。
        for(int i=0;i<arr.length;i++){
            System.out.println(arr[i]);
        }
    二维数组:
        格式1:int[][] arr = new int[3][2];
        格式2:int[][] arr = new int[3][];
            arr[0] = new int[3];
            arr[1] = new int [2];
            arr[2] = new int [1];
        格式3:int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};

        二维数组遍历:
        for(int i=0;i<arr.length;i++){
            for(int j=0;j<arr[i].length;j++){
                System.out.println(arr[i][j]);
            }
        }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值