JAVA潜心修炼五天——第1天

1.Java中的基本数据类型有八种:byte,short,int,long,float,double,char,boolean

​ 引用类型:除基本数据类型和null以外的其他数据类型:String,数组,类,接口…

2.类型转换:

​ 自动类型转换——1,数据类型要兼容。
2目标类型要大于源类型

​ 强制类型转换

3.Scanner类在java.util.Scanner包内. Scanner scanner=new Scanner(System.in)

4.运算符:

​ 算数运算符:+,-,*,/,%,++,–

​ 赋值运算符:=,+=,-=,*=,/=

​ 关系运算符:>,<.<=,>=,!=,==

​ 逻辑运算符:&&,||,!

​ 条件运算符(三目运算符): 条件?表达式1:表达式2

​ 位运算符:&(按位与),|(按位或),~(按位非),^(异或),>>(右移),<<(左移),>>>(无符号右移)

//二进制为 00000000 00000000 00000000 00000101
int a=5;
//二进制为 00000000 00000000 00000000 00001000
int b=8;
//与:两位都为1,则为1,否则为0,00000000
System.out.println(a&b);
//或:只要有一个1,则为1,否则为0,00001101
System.out.println(a|b);
//非:如果为1,则为0,如果为1,则为 11111111 11111111 11111111 11111010
System.out.println(~a);
//异或:如果两位相同,则为0,否则为1,00001101
System.out.println(a^b);
//左移:将所有位都向左移指定位数,末尾补0
System.out.println(a<<2);
//右移:将所有位都向右移指定位数,高位补符号位
System.out.println(a>>2);
//无符号位右移:将所有位都向右移指定位数,高位补0
System.out.println(a>>>2);

输出:

0
13
-6
13
20
1
1

上面~a输出-6的原因是 计算机内部是使用补码来存储和表示值的,因此:

原码:11111111 11111111 11111111 11111010 (原码为第一位为符号位0正数,1负数,剩下31位为二进制数)

反码:10000000 00000000 00000000 00000101 (反码除符号位不变外,负数每一位都取反)

补码:10000000 00000000 00000000 00000110 (补码在反码的基础上+1)

(正数的原码,反码,补码都是一样的,只考虑负数的特殊形式)

循环控制:

​ break:跳出整个循环,执行循环之后的代码,一般与if一起使用

​ continue:跳出本次循环,执行下一次循环,本次循环尚未执行完的代码不再执行

递归:

​ 方法自己调用自己,称为递归,该方法称为递归方法

数组:数组是用来存储相同数据类型的一组数据
声明一个数组就是在内存中划出一串连续的空间
数组中的元素是有默认值的,(局部变量没有默认值)

ArrayIndexOutOfBoundsException 数组下标越界异常

数据存储方式:

​ 1.内存分类:栈内存,堆内存

区别:1,栈的存取速度比堆要快。 2,栈内存要小于堆内存

​ 2.成员变量的基本数据类型在内存中的存储:直接将值存储在栈中

​ 3.成员变量的引用类型在内存中的存储:在栈中存储在堆中的内存地址

冒泡排序:

​ 原理:依次比较相邻的两个元素,如果顺序错误就交换位置

public static int[] bubbleSort(int[] array){
    for (int i = 0; i < array.length-1; i++) {
        for (int j = 0; j < array.length-i-1; j++) {
            if(array[j]>array[j+1]){
                int temp=array[j];
                array[j]=array[j+1];
                array[j+1]=temp;
            }
        }
    }
    return array;
}

Arrays工具类:

​ java.util.Arrays类提供了操作数组的方法:

​ .toString(),将数组返回字符串

​ .sort() 排序

​ .fill() 填充

不定长参数: 数据类型… 表示不定长参数

​ 特点:只能是方法的最后一个参数

​ 调用方法时参数的个数任意

​ 一个方法最多只有一个不定长参数

​ 本质上就是一种特殊的数组,只能作为方法的形参使用

面向对象——是一种程序的设计范型,是一种思想,使用类和对象的概念进行程序设计

类:一个文件中可以定义多个类,但只能有一个public修饰的类,且此类的名称必须与文件名相同

全局变量和局部变量

全局变量:在类中定义的变量,称为全局变量,可以在整个类中使用,有默认值

局部变量:除全局变量以外的其他变量,只能在局部访问,没有默认值,必须赋值才能使用

局部变量和全局变量同名,局部变量的优先级更高,即默认访问的是局部变量

this表示当前类的一个对象

​ 只能在类的方法中使用,表示方式的调用者,即调用该方法的对象

​ 当局部变量和全局变量同名时,可以使用this.来访问全局变量

static关键字——static表示静态的,可以用来修饰变量和方法

​ 静态变量——用static修饰的变量,称为静态变量或类变量(非static修饰的变量称为实例变量)

​ 静态变量为类的所有对象所共有,属于整个类

​ 访问方式:对象名.属性名 或 类名.属性名 (推荐)

​ 静态方法——用static修饰的方法,称为静态方法或类方法(非static修饰的方法称为实例方法)

​ 访问方式:对象名.方法名() 或类名.方法名()(推荐)

​ 静态方法中只能访问静态变量或静态方法,不能访问实例变量和方法

方法重载

​ 一个类中包含两个或两个以上同名的方法,其参数不同,称为方法重载(overload)

​ 注意:在同一个类,方法名相同,参数列表不同(参数个数,类型,顺序至少有一个不同),即方法签名不同,与方法修饰符,返回类型,形参名无关

构造方法——构造方法时一种特殊的方法,也称为构造函数或者构造器constructor(用于创建和初始化对象)

特点:1.方法名必须和类名相同。2没有返回值,也不能写void。3当创建类的对象时,会自动调用构造方法。4,一个类中可以有多个构造方法。5,如果没有自定义构造方法,则类中默认会有一个无参构造方法6如果自定义构造方法,则默认的无参构造方法失效,建议自己重写。6可以使用this调用当前类的另一个构造方法,但只能出现在构造方法第一行。

常用的包:

​ java.lang 包含Java的核心类,如System,String,Math等,该包默认会被自动导入,当使用其中的类,无需import导入

​ java.util包含实用的工具类,如Scanner,Arrays等

​ java.io包含输入/输出操作的类

​ java.sql包含数据库操作的类

​ java.net包含网络操作的类

​ java.awt包含图形窗口操作的类

​ 访问修饰符

​ 用来控制访问范围,可以修饰属性,方法,类等

修饰符同一个类同一个包内的类不同包的子类不同包并且不是子类
public公开的YYYY
protected受保护的YYYN
默认YYNN
private私有的YNNN

总结:public在哪都能访问

​ protected:只有不同包并且非子类不能访问,其他都能访问

​ 默认:只有本包可以访问

​ private:只有本类中可以访问

范围从大到小的顺序:public>protected>默认>peivate

类加载——将class文件读取加载到JVM内存中的过程,称为类加载

​ 类加载的时机:

​ 1.创建类的对象。 2调用类的静态属性或静态方法。 3.执行main方法时,main方法所在的类会被加载

​ 4.通过反射调用类Class.forName(“包名.类名”)

舒适化顺序:

​ 1.对象所在的类被加载

​ 执行静态变量和静态代码块(根据定义的顺序,从上往下)

​ 特性:1.静态变量在类加载时初始化,且在内存中只分配一块空间

​ 2.静态代码块在类加载时执行,且只执行一次(类只会被加载一次),主要用于初始化静态属性

​ 3.静态代码块中不能初始化实例变量,只能初始化静态变量

2.对象被创建

​ 执行实例属性和代码块(根据定义的顺序,从上往下)

​ 执行构造方法

(PS:执行先后顺序:静态代码块>代码块>构造方法)

Debug的使用:

​ 1.设置断点

​ 2.单步运行

​ F6:单步运行,接着执行下一次代码

​ F5:单步跳入执行,会进到方法中​

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值