Java小实例记录
java实例
1.汉诺塔算法
1 | public class MainClass { |
A上有n到C必须经历的操作就是:
(1)使n-1个圆盘整体移动到B柱(中转位置)上
(2)再使第n个圆盘移动到C柱(目的位置)上
(3)再将n-1个圆盘整体移动到C柱(目的位置)上
上一操作中的第(1)步又可以细分到:
(1)将n-2个圆盘通过 (1)使n-2个圆盘整体移动到C柱(中转位置)上,
(2)再使第n-1个圆盘移动到B柱(目的位置)上,
(3)再将n-2个圆盘整体移动到B柱(目的位置)上。
上一操作中的第(3)步又可以细分到:
(1)将n-2个圆盘通过 (1)使n-2个圆盘整体移动到A柱(中转位置)上,
(2)再使第n-1个圆盘移动到C柱(目的位置)上,
(3)再将n-2个圆盘整体移动到C柱(目的位置)上。
逐步缩小,终止条件为杆子上只剩一个碟子需要移动
1 | public class Test { |
c=A
1
2
3
4
5
6
7public class Test {
public static void main(String[] args) {
char c = 65;
System.out.println("c = "+c);
}
}
//c 变量为 char 类型,65 对应的 ASCII 码为 A。4.delete
1
2
3
4
5
6
7
8
9
10
11
12class Test
{
public static void main(String[] args)
{
StringBuffer a = new StringBuffer("Nowcoder");
StringBuffer b = new StringBuffer("Google");
a.delete(1,3);
a.append(b);
System.out.println(a);
}
}
//delete(x, y) 删除从字符串 x 的索引位置开始到 y-1 的位置,append() 函数用于连接字符串。
5.子类可以访问所有(子类与超类)的 public 和 protected 方法
protected为保护类型,同一个包里和public一样,都可以访问到。 但在不同包里protected类型的成员变量只能通过子类来访问,方法可通过super.方法名调用。
6.private修饰符定义了方法与属性只能在同一个类中访问
7.Java 中 float 类型的在内存中的大小为4字节
8.Java 中变量一定要初始化
9.所有异常类的基类是Java.Lang.throwable
10.public static void main(String[] args)
11.is 开头的命名方式一般用于布尔值判断。
12.Java 是区分大小写的 ,java关键字也不例外。
13.空引用可用于访问静态变量或方法
当我们通过一个对象的引用访问静态成员属性或者方法时 ,访问操作只与所声明的引用类型相关 ;与引用对象是否为 null 无关 ,因为访问静态成员不需要实例化对象 ;即便引用不为 null ,也与运行时多态无关 ,因为静态成员是类相关的 。
14.double a=(float) a
double的范围要比float的范围大,float要比int的范围大
类型转换分两种:
自动类型转换(隐式)
特点: 代码不需要进行特殊处理,自动完成
规则: 数据范围从小到大
安全性:安全
强制类型转换
特点:代码需要进行特殊的格式处理,不能自动完成
格式:范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据
安全性:不安全
15.基本类型类型以及对象的引用变量是存储在栈内存中 ;而对象本身的值或者说 new 创建的对象和数组是存储在堆内存中。
16.三种表达式
1、中缀表达式:
操作符以中缀形式位于运算数中间(如:3+2),是我们日常通用的算术和逻辑公式表示方法。
2、后缀表达式:
又称逆波兰式(Reverse Polish Notation - RPN),操作符以后缀形式位于两个运算数后(如:3+2的后缀表达形式就是3 2 +)。
3、前缀表达式:
又称波兰式(Polish Notation),操作符以前缀形式位于两个运算数前(如:3+2的前缀表达形式就是+ 3 2)。
17.求输出结果
1 | class TestIt |
java 基本数据类型传递参数时是值传递 ;引用类型传递参数时是引用传递 。然而数组虽然是引用传递 ,但是将引用 z = null 只是将引用z不指向任何对象 ,并不会对原先指向的对象数据进行修改 。
1 | class ChangeIt |
引用的是地址
18.
1 | < //小于(<) |
19.错误! 索引超出范围
1 | int[] arr = new int[9]; |