Java学习日记day4

小复习;方法参数的使用:基本数据类型传值 引用数据类型(数组)传递地址值,方法内的变化会影响主方法中的数组。

2数组排序(不深入版):冒泡排序 选择排序 插入排序(这几个排序我记得我高中学的头昏脑涨的 高中的vb主要就是讲这个 学到最后也没学精通 最后都是带数据算的 学麻了)

冒泡排序:前后比较 像水里冒泡泡一样一个接着一个排序

int[] a=new int[] {91,23,213,27,3,15,29,80};
int t;
for(int i=0;i<a.length-1;i++) {
    for(int j=0;j<a.length-1-i;j++)
        if(a[j]>a[j+1]){
            t=a[j+1];a[j+1]=a[j];a[j]=t;
        }

}
System.out.println(Arrays.toString(a));

选择排序:每轮选出一个最大(最小)值,放在数组最前(后)面。最大值保存的是下标,用下标进行交换。

int[] a=new int[] {91,23,213,27,3,15,29,80};

for(int i=0;i<a.length;i++) {
    int max=a.length-i-1;
    for(int j=0;j<a.length-i;j++) {
        if (a[j] > a[max])
            max = j;
    }
    int t=a[max];a[max]=a[a.length-i-1];a[a.length-i-1]=t;
}
System.out.println(Arrays.toString(a));

2阶段复习

  1. 变量 使用前:声明 + 初始化 声明:类型+变量名
  2. 类型 基本数据类型+引用数据类型 基本数据类型(8个) byte short int long(大值 表示时间 long=0表示计算机元年) float double char(0 - 65535)                                  

二进制;原码:原数的二进制表示 正数0 负数1表示  反码:符号位不变 按位取反 补码:符号位+1

3.运算符:逻辑

算数

三目 boolean表达式 ? true:false

位移 >>(负补1 正补0)>>>(只补0)

赋值

比较

4.逻辑控制语句 顺序 选择 循环

5.数组 声明+初始化

   初始化方式:2静态   1动态(int[] arr = new int[5])

依次获得数组中的元素 –>数组遍历 长度属性 length 下标范围:0 ~ length-1

数组的扩容(复制) Arrays.copyOf()   System.arrayCopy(原数组,位置,现数组,位置,复制的长度)

排序:上方

6.jvm内存;方法区:类相关的信息 方法栈:局部变量/临时变量 堆:引用类型的真正数据,对象  类加载:将类文件中类相关的信息加载到JVM内存中的方法区的过程

7.方法:修饰词 + 返回值类型 + 方法名 + 方法参数 + 方法体

     目的:代码的复用

3.面向对象的学习:OOP(面向对象程序设计)

1类和对象

  1. 对象:符合类的特征独立存在的个体 真实存在
  2. 类:所有同种类型的对象所有的特征/行为,抽象成为类 不真实存在
  3. 类和对象的关系:写java代码时:先有类,才有对象

逻辑分析:先有对象,总结出类

  

定义实体类:成员变量 有默认的初始值;引用数据类型:NULL 基本数据类型:0  成员方法

类的使用:a创建类的对象-在主方法中创建 b调用类的成员变量 c调用类的成员方法

一个文件夹里只能存在一个public修饰的类

局部变量和成员变量的区别:1在方法里的称为局部变量 在类内方法外的称为成员变量

2 局部变量使用前必须初始化 成员变量可以不用初始化(有默认初始值)

3 局部变量的数量由声明个数决定 成员变量个数由声明对象决定

4 jvm内存中的区别

局部变量存放在方法栈中 方法结束 方法栈消失 局部变量消失

成员变量和对象一起存在堆中

类只加载一次且是在第一次创建类的对象之前就已经加载到方法区中了。

方法区中的方法只有在调用它时才会存在。

成员变量的类型是自定义的类型 – 引用类型

命名规范:变量名:硬性规定:1.只能出现:英文+数字+_+$ 2不能以数字开头

          建议3.可读性要好,第一个单词小写,第二个单词开始首字母大写

包名:域名倒写(如com.baidu.www)包名全小写

方法名:小驼峰命名法(首单词小写 第二个单词开始首字母大写 可读性要好)

类名:首字母大写 如String Math Scanner Arrays

今日学习感悟:初步接触了面向对象的学习 主要是打基础 知道了局部变量和成员变量的区别 对内存图有了进一步的理解。通过一天的学习,我加深了对内存图的理解,知道了更多的基础知识,算是打下了更多的基础,自习学到了内部类,对于类的综合运用感到了很大的困难,需要更多的时间去理解,也要更多的去运用和实践才能掌握类。

面向对象只是基础 后面还有更多的困难 如链表 线程 要努力学习去克服 不要不耐烦 加油。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值