数组:声明-创建-初始化
方法 产生副作用->对某些变量产生影响
值传递
java中方法参数传递方式是按值传递。
如果参数是基本类型,传递的是基本类型的字面量值的拷贝。
如果参数是引用类型,传递的是该参量所引用的对象在堆中地址值的拷贝。
值传递:表示方法接收的是调用者提供的原始值的一个副本。
函数接收的是原始值的一个copy,此时内存中存在两个相等的基本类型,即实际参数和形式参数,后面方法中的操作都是对形参这个值的修改,不影响实际参数的值。
引用传递:表示方法接收的是调用者提供的变量地址。
在方法执行中,形参和实参内容相同,指向同一块内存地址,方法执行中对引用的操作将会影响到实际对象。
赋值运算符只能让引用指向一个新的对象,而不会改变对象本身
*String类对象的所有方法,都是不改变对象本身的
String类是纯粹的对象,特殊的地方在于有 字符串直接量 和 字符串常量池 和 字符串拼接的运算符重载。而且与基本类型无关,之所以看起来像是基本类型,主要是因为String类是不可变类(构造后不可改变,没有提供可改变自身状态的方法)。
(1)基本数据类型传值,对形参的修改不会影响实参;
(2)引用类型传引用,形参和实参指向同一个内存地址(同一个对象),所以对参数的修改会影响到实际的对象;
(3)String, Integer, Double等immutable的类型特殊处理,可以理解为传值,最后的操作不会修改实参对象。
P14 递归: 方法的第一条语句总是包含一个return的条件语句,即最简单情况,要及时终止递归
Java编程的最佳实践之一:每个静态方法库都包含一个main方法,来测试库中的其他方法
根据离散概率随记返回int值(出现i的概率是a[i])
- java.lang包是JVM自动引入的,不用人工import
P24
重定向 < >
管道 | :将一个程序的输出重定向为另一个程序的输入,叫做管道
1.1.10 二分查找
解决白名单问题
即想知道,输入的这个账号,是否在我们的白名单里面?如果不在,拒绝服务。
这就涉及到在白名单中高效查找,要采用二分查找这样的高效查找方法
答疑点:
1、负数的余数,正负号仅与被除数有关。-14%3=-2,14%-3 =2
2、& | ^按位与、按位或、按位异或
|| &&短路求值
3、1/0 抛出异常
4、1.0/0.0 Infinity 无穷大