zoukankan      html  css  js  c++  java
  • java学习--基础知识进阶第一天--笔记

    今日内容
    复习基础班的内容
    静态static关键字
    代码块

    Java基础语法前三天
    运算符
    算术运算符
    + - * / % ++ --

    /:整数相除得到的结果是整数 3/-2=-1
    %:取模的结果的符号取决于被除数,和除数无关 3%-2=1 -3%2=-1 -3%-2=-1

    ++和--在前和在后的问题
    单独使用:没有区别
    参与了其他运算:
    ++在前,先自增,然后将自增后的结果再参与其他运算
    ++在后,先将变量参与其他运算,然后再自增

    赋值运算符
    = += -= *= /= %=
    关系运算符
    > < >= <= == !=
    逻辑运算符
    & | ^ ! && ||
    &和&&:遇false则false,只有左右两边的都为true时结果才为true
    |和||:遇true则true,只有左右两边都为false时结果才为false
    ^:只有当左右两边不同时,一个是true一个是false时结果才为true

    &和&&的区别
    &&具有短路效果,如果运算符左边为false时,右边就不执行
    &是没有短路效果的,不管运算符左边为false还是true,右边都会执行

    三元运算符
    格式:
    布尔表达式?表达式1:表达式2;


    流程控制语句
    顺序结构:代码从上往下依次执行

    选择结构
    if语句
    格式一:
    if(布尔表达式){
    语句体;
    }
    格式二:
    if(布尔表达式){
    语句体1;
    }else{
    语句体2;
    }
    格式三:
    if(布尔表达式1){
    语句体1;
    }else if(布尔表达式2){
    语句体2;
    }else if(布尔表达式3){
    语句体3;
    }
    ...
    else{
    语句体n+1;
    }

    switch语句
    格式:
    switch(表达式){
    case 值1:
    语句体1;
    break;
    case 值2:
    语句体2;
    break;
    ...
    default:
    语句体n+1;
    break;
    }

    注意事项:
    (1)表达式的数据的类型只能是byte short int char String 枚举
    (2)case穿透问题,case后面的break是可以省略的,如果省略了就会继续往后执行其他case中的内容
    而不需要判断case的值,直到遇到break或者switch语句的右大括号位置
    (3)default的位置问题,default语句可以位于所有的case语句之前,也可以位于所有的case语句之后
    还可以位于多个case语句执行,甚至可以省略。default语句的位置不影响执行流程

    循环结构
    for循环
    格式:
    for(初始化表达式;布尔表达式;循环后的执行表达式){
    循环体;
    }
    while循环
    格式:
    while(布尔表达式){
    循环体;
    }

    初始化表达式;
    while(布尔表达式){
    循环体;
    循环后的执行表达式;
    }

    do...while循环
    格式:
    do{
    循环体;
    }while(布尔表达式);

    跳出循环语句
    break
    使用场景:循环和switch语句中使用
    特点:
    结束所在最近的整个循环
    continue
    使用场景:只能在循环中使用
    特点:
    结束本次循环,继续下一次循环

    Scanner类和Random类
    Scanner是用于键盘录入
    Random由于生产随机数

    步骤:
    (1)导包
    import java.util.Scanner;
    import java.util.Random;
    (2)创建对象
    Scanner sc = new Scanner(System.in);
    Random r = new Random();
    (3)调用方法
    Scanner类
    nextInt()
    nextLine()
    Random类
    nextInt(int n):生成的随机数是一个整数,范围在[0,n)

    关键字


    标识符
    用于给包、类、方法、变量和常量等取名字的

    组成规则:
    (1)数字
    (2)字母
    (3)下划线(_)
    (4)美元符($)

    命名规范:


    注释
    //

    /*
    */

    /**
    *
    */

    数据类型

    方法
    方法的概述
    什么是方法:是实现某种功能的代码块

    优点:
    提高代码的复用性
    方法的格式
    修饰符 返回值类型 方法名(参数列表){
    方法体;
    return 返回值;
    }

    修饰符:public static
    返回值类型:
    和返回值是对应的关系,如果返回的是10这样的整数,那么返回值类型就是int类型
    返回值类型可以是具体的类型,如果没有返回值那么类型就必须写void,不能省略
    方法名:
    使用合法的标识符取名,还要按照规范,见名知义
    参数列表:可以有多个参数,也可以没有参数
    数据类型
    变量名
    方法体:功能执行的主体
    返回值:方法运行得到的结果
    return:两个作用,一个是返回方法执行的结果,另一个是结束方法


    两个明确
    返回值类型
    参数列表

    方法的调用
    有返回值的方法
    (1)单独调用
    (2)输出调用
    (3)赋值调用
    无返回值的方法
    (1)单独调用

    方法的重载
    条件:
    (1)在同一个类中,方法名相同
    (2)参数列表不同(个数不同,类型不同,顺序不同)

    方法的参数传递问题
    基本数据类型的参数传递:传递的是值,不改变原来的值
    引用数据类型的参数传递:传递的是地址值,改变原来的值

    数组
    数组的概述

    数组的特点
    (1)是一个容器,可以存储多个“同一种类型”的数据
    (2)既可以存储基本数据类型,也可以存储引用数据类型的数据
    (3)一经定义长度就固定
    (4)有整数索引,范围在0~数组的长度-1

    数组的初始化
    动态初始化:给定数组的长度,由系统赋默认初始值

    数据类型[] 数组名 = new 数据类型[长度];
    int[] arr = new int[5];

    静态初始化:给定元素的值,由系统确定数组的长度

    数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
    int[] arr = new int[]{1,2,3,1};

    数据类型[] 数组名 = {元素1,元素2,...};
    int[] arr = {1,2,3,1};

    数组的内存图
    int[] arr = new int[5];
    int[] arr2 = arr;

    数组的取值和赋值
    取值:
    数组名[索引]
    arr[1]

    赋值:
    数组名[索引] = 新值;
    arr[1] = 10;

    索引:范围在0~数组的长度-1
    长度:length属性获取数组的长度

    数组的操作
    遍历:依次取出数组中的元素
    求最值:获取数组中的最大值和最小值
    查找:给定指定的元素,查询其在数组中第一次出现的索引
    反转:将数组中的元素倒过来,第0索引的元素和arr.length-1索引出的元素交换,第1索引的元素和arr.length-2索引出的元素交换,以此类推
    排序(选择排序、冒泡排序):按照某种顺序(从小到大,或者从大到小)对数组中的元素进行重新排列

    数组排序:
    int[] arr = {2,1,9,5,8};// {1,2,5,8,9}
    冒泡排序:拿前一个元素和后面一个元素进行比较,如果前面的元素比后面的大,就交换位置,所有的元素这样排完之后可以实现升序排列。

    选择排序:选择其中一个元素,依次和数组中的其他元素进行比较

    定义标准的学生类
    成员变量
    *private修饰
    构造方法

    无参构造方法
    public 类名(){}
    有参构造方法 *this
    public 类名(参数列表){}

    成员方法

    getters和setters方法 *this
    public void 方法名(){方法体}



    static关键字
    静态修饰符,可以修饰成员变量和成员方法,不能修饰构造方法

    static的特点:
    (1)修饰的成员不属于某个具体的对象,而是属于类的,被所有的对象所共享
    (2)可以直接用类名.的方式来调用
    (3)随着类的加载而加载,出现先于主方法,出现也先于对象

    注意事项:
    静态方法只能调用静态的成员变量和成员方法,不能调用非静态的成员变量和成员方法
    非静态的方法既可以调用静态的成员也可以调用非静态的成员

    静态方法中有没有this?没有

    静态的优缺点
    优点:
    节省内存空间
    调用更方便了,直接用类名.的方式调用

    缺点:
    局限性,静态只能调用静态的成员

    静态的选择:
    成员变量:
    当成员变量为所有的对象所共享,这时就可以用static修饰
    当静态的成员方法需要调用该成员变量时,由于静态只能调用静态,这时也可以将成员变量使用static
    成员方法:
    (1)一般方法上来必须不使用static修饰,在工具类中常常为了方便方法的调用会将方法用static修饰
    (2)如果方法需要被main方法直接调用,这时可以将方法用static修饰


    工具类
    特点:
    (1)构造方法被private修饰
    (2)方法都是static修饰的


    代码块(4种)
    局部代码块
    位置:在方法中
    格式:
    {
    }
    作用:限定变量的作用域
    构造代码块
    位置:类中方法外
    格式:+
    {
    }
    作用:抽取构造方法中的共性内容
    特点:
    每一次创建对象都会执行
    先于构造方法执行
    静态代码块
    位置:类中方法外
    格式:
    static{

    }
    作用:做一些前期的数据准备或者初始化操作
    特点:
    随着类的加载而执行,只会执行一次
    优先于构造代码块执行
    优先于主方法执行

    同步代码块(多线程学习)

  • 相关阅读:
    软件破解系列之OD中断方法
    C#获取类名为Internet_Explorer_Server控件的内容
    C#重启网卡(支持xp和win7)
    软件开发专业技术名词的解释
    一些软件设计的原则
    AntlrWorks的Open没有反应,安装JDK6即可解决
    向大家推荐《思考中医》,这本书对我来说算是中医启蒙了 无为而为
    面对富裕对于贫穷的几乎是天生傲慢我们要呐喊: 我们并不笨,我们只是穷读新科诺贝尔文学奖得主,奥尔罕·帕慕克作品有感 无为而为
    推荐一本书《罗伯特议事规则(Robert's Rules of Order) 》,也许对于想要参与管理的技术人员来说是很有用的 无为而为
    再次发布一个工作地点在上海的Biztalk专家招聘 无为而为
  • 原文地址:https://www.cnblogs.com/bigorangehasc/p/8639245.html
Copyright © 2011-2022 走看看