java学习笔记2【自用】【数组——String类概述】

1.idea中实用快捷键:

psvm+enter 快速生成一个main函数

sout+enter 快速生成一个输出语句

command+/ 将选中代码变成单行注释

command+shift+/ 将选中代码变成多行注释

格式化 command + option + L

2.数组的定义格式:

显然格式一的读法更好一些,所以更推荐使用格式一的定义格式:int[] arr

3.数组的初始化:为数组中的数组元素分配内存空间,并为每个数组元素赋值

数组的初始化方式有两种,分别是动态初始化和静态初始化。

动态初始化:int[] arr = new int[3];由数组为数组元素赋初值

静态初始化:int[] arr = new int[]{1,2,3};/int[] arr = {1,2,3};(后者为简化格式) 

和c语言进行对比: int arr[3] = {1,2,3};(arr[3]里的数字也可以省略不写)

4.java中内存分配:

数组内存分配步骤(动态初始化):堆内存中分配一片内存空间(大小为数组元素个数,初值均为0)——将堆内存里分配的内存空间的布置赋给栈内存里的数组名。

 访问数组元素,通过数组名访问数组的内存地址,然后再通过数组索引值找到对应数组元素。也就是说要先访问栈内存,再访问堆内存。 

5.java中获取数组元素数量         arr.length(字符数组/数字数组都适用)

和c语言进行对比:c语言中获取数组元素数量可通过sizeof(arr)/sizeof(arr[0])计算得到,没有直接获取数字数组长度的方法(注意此处是数字数组,字符数组可用strlen()获取数组长度)

6.方法的定义:

public static void 方法名(){

        //方法体

}

方法必须先定义后调用,但也没有c里那么多条条框框,比如方法的声明之类的。

7.java中的形参为方法定义中的参数,等同于变量定义格式,如int number(注意这里有包含int)

8.void表示无返回值,可以不写return,也可以写了return但不接任何数据,二者都是正确的

9.判断函数是否构成重载主要看函数是否在同一个类中以及参数个数与类型,不能通过返回值类型来判断

10.int向byte、short转换要强制类型转换,但是如果是整数想表示为long类型只需在数字后加l/L。

11.对于基本数据类型的参数,形参的改变不影响实际参数的值。

原因:在栈内存里面,main方法和被调用的方法所占的内存空间是不一样的,在被调用方法里修改形参的值,只能改变栈内存里该方法对应的内存空间里的参数的值,而main方法里的参数值始终保持不变。

对于引用类型的参数,形参的改变影响实际参数的值。引用类型参数存储的不是一个具体的值,而是堆内存地址(比如数组名),此时形参的改变会影响到堆内存里的数据值本身。

12. 成员变量:类中方法外的变量        局部变量:方法中的变量

成员变量和局部变量的区别:

方法声明上指的是在方法的形参位置,形参也属于局部变量。因为类要被使用必须创建对象,而new出来的对象是在堆内存中的,所以对象的局部变量自然也是在堆内存中。堆内存中的变量都有默认的初始化值(比如数组就是在堆内存中,会根据数据类型被赋予不同的初值),而栈内存中的变量都是没有默认的初始值的,未被赋初值不可使用。(解释了main函数里定义的变量为什么一定要赋初值,因为都是在栈内存之中)

13.通过对象名访问变量存在数据安全的隐患,比如说定义了一个学生类,学生类的有一个成员变量age,age不应该出现负数,但如果通过对象名直接访问变量就可以随意修改该变量的值,显然不合常规。这就是使用private关键字的意义。

虽然通过set方法依旧可以设置给私有成员变量赋值,看起来也可以随意修改变量的值,和使用private没什么区别,但可以通过给set方法设置判断条件来控制输入的值的范围,达到对成员变量的限制作用。(set/get方法不需要加static关键字)

14.用this关键字修饰的变量为成员变量,在set/get方法里一般局部变量和成员变量是同名的,用this关键字修饰可以区分出哪一个是成员变量。(如果set/get方法里局部变量和类里的成员变量不同名,则可以不使用this)

15.面向对象三大特征:封装、继承和多态。 

16.构造方法:完成对对象数据的初始化。例如Student student = new Student();

Student()很显然是一个方法,这个方法就是构造方法,只不过该构造方法没有参数,所以只是新建了一个对象,没有对对象数据做任何初始化处理。正常的新建对象的流程其实就是在调用该对象的类的构造方法,只不过有些是有参有些是无参的而已。

构造方法书写格式和普通的函数类似,只不过不需要写返回值类型(不是无返回值void,而是根返回值根本没有存在的意义,构造方法只是为了新建对象而已,void指的是有返回值只不过值为null)和static。

17.构造方法的注意事项:

如果定义了带参构造方法,系统就不会提供默认的无参构造方法,无参构造方法需要自己书写。

18.标准类的制作和测试:

19.API:Application Programming Interface

 如何使用帮助文档:双击打开——找到索引选项卡中的输入框——在输入框中输入想要查询的类,比如Random——看类在哪个包下——看类的描述——看类的构造方法——看成员方法(返回值、方法名和参数、方法作用的描述信息)。(java.lang包下的类使用是不需要导包的)

command+option+V 调用对象里的方法时可以自动补全左边的内容(返回值类型)

20.String类概述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值