1. 面向对象编程(OOP) : Object-oriented programming is a programming methodology that views a program as similarly consisting of objects that interact with each other by means of actions. 面向对象编程是一种编程方法,它把程序看作是 通过动作(actions)相互作用而构成的对象(objects)的集合。
2. 方法(Method): The actions that an object can take are called Methods. In Java, all methods are part of Class. 方法是类的组成部分。
3. 类(Class): Objects of the same kind are said to have the same type or, more often, are said to be in the same class. 同类型的对象的集合被称为类。 例如:飞机是一个class,他们都有相同的method(起飞,降落), 但是class里的每一个飞机都是不同的object,他们的型号规格各不相同,速度和高度也不同。 A Java application program is a class with a method named Main.
4. Application 与 applet的区别: 前者在计算机上运行,后者在Web brower上运行(Can also be run with an applet viewer program for debugging)。
5. System.out 是一个object,println 是一个method。
6. Compiler(编译器) is a program that translates a high-level-language program, such as a Java program, into an equivalent low-level-language program.
7. Java 代码运行时要先被Java编辑器翻译成byte-code,byte-code可以被看成JVM的机器语言,JVM (Java Virtual Machine)与计算机十分相似,因此可以吧byte-code再翻译为适用于任何计算机的机器语言。(JVM有时也指实现虚拟机的软件)。JVM通过两种方法实现这种翻译:interpreter 和Just-In-Time (JIT) compiler。Interpreter既可以翻译byte-code,又可以执行相应的机器语言。Interpreter是一行一行的翻译并执行byte-code,而非整体翻译后再执行。 现在的虚拟机大多采用JIT compiler(比interpreter更快),JIT编译器以块的形式读取byte-code,并根据需要将整个代码块编译为机器语言指令。被编译出来的指令们会被记忆,如cached(缓存),在未来使用。因此代码块必须被一次性编译好。
8. Class Loader(类加载器)用来将不同的class的byte-code连接起来。(在其他语言中被称为Linker)
9. The name of a variable (or other item you might define in a program) is called an identifier. 变量(或类与方法)的名字被称为标识符(Identifier)。标识符不能以数字开头,其中只能包含字母、数字,和下划线,$也可用,但是$在Java中有特殊用途,因此一般不使用。 下划线开头是可以的。 另外,Java是大小写敏感的语言。
10. 一般不使用科学计数法和浮点数进行算术运算(如0.000111,用1.11e-4来表示)银行一般不用浮点数来计算,一般会使用int,表示元角分。
11. Variable Op = Expression与 Variable = Variable Op (Expression)意义相同 如 a=a+b, 可以写成a+=b
12. byte —> short —> int —> long —> float —> double 前面的可以转化成后面的,越往后的type范围依次增大。
13. 强制转化double ans = n/(double)m; int i = (int)5.5;
14.
int n = 8;
int valueProduced = n−−;
System.out.println(valueProduced);
System.out.println(n);
答案是 8,7
int n = 8;
int valueProduced = −−n;
System.out.println(valueProduced);
System.out.println(n);
答案是:7,7
15. 关于length
int n = "Hello".length();
等价于
String greeting = "Hello"; int n = greeting.length();
16. 关于equal
String greeting = "Hello";
greeting.equals("Hello");returns true
greeting.equals("Good-Bye"); returns false
greeting.equals("hello"); returns false
17.
boolean equals(Other_String) 比较string
boolean equalsIgnoreCase(Other_String) 无视大小写比较string
String toLowerCase( )转小写
String toUpperCase( )转大写
String trim( ) 删除起始和末尾的空格,中间部分的空格不删除。
char charAt(Position) 返回第几位的字母
例如:greeting.charAt(0);returns 'H'
String substring(Start) 返回子字符串,strat是起始点。
例如:String sample = "AbcdefG"; sample.substring(2); returns "cdefG"
String substring(Start, End) 返回子字符串,有起始点,有结束点, 取起始点,不取结束点。
例如:String sample = "AbcdefG"; sample.substring(2, 5); returns "cde".
18. int indexOf(A_String) 返回字符串在调用对象字符串中第一次出现的索引(位置)。位置计数为0、1、2等。如果未找到该字符串,则返回−1。 例如:
String greeting = "Hi Mary!";
greeting.indexOf("Mary") returns 3,
而
greeting.indexOf("Sally") returns −1.
19. int indexOf(A_String, Start) 同上, start是搜索的起始点。
例如:
String name = "Mary, Mary quite contrary";
name.indexOf("Mary", 1) returns 6.
而 name.indexOf("Mary", 0) returns 0.
name.indexOf("Mary", 8) returns –1.
20. int lastIndexOf(A_String) 返回最后一次出现 A_String的位置。
21. int compareTo(A_String) A_String 比目标的字母顺序靠后,返回负数, 相同返回0, 比目标靠前返回正数
例如:
String entry = "adventure";
entry.compareTo("zoo") returns a negative number,
entry.compareTo("adventure") returns 0,
and entry.compareTo("above") returns a positive number.
int compareToIgnoreCase(A_String) 无视大小写。(大写的ASCII比小写的小)
22. 设置常量:public static final Type Variable = Constant; (必须在main外面设置)
23. 格式化输出:
字符串和字符的s和c格式可以包括一个指定用于输出值的字段宽度的数字,例如%15s和%2c。如果没有给定数字,则输出值时不带前导空格或尾随空格。
24. %后不带负号右对齐,带负号,左对齐。
double value = 12.123;
System.out.printf("Start%8.2fEnd", value);
System.out.println();
System.out.printf("Start%-8.2fEnd", value);
System.out.println();
结果:
Start 12.12End
Start12.12 End
25. \n 跟%n相同的,都是换行,但是更倾向于用%n
26. 应该输出的值总是会输出的。如果指定的字段宽度太小,则会占用额外的空间,而不会损坏本应该输出的东西。
27. %f %e 都是默认输出12位。被吞掉的地方四舍五入, %e可以理解为科学计数法 e+04 代表10的4次方。
输出结果:
28. format
结果是12.35, 如果把格式改成0.00,结果依然是12.35, 为了不丢失数据,java会违背规则。在format里, 0代表固定的digit,#表示可能存在的digit。因此不确定有没有那一位的时候,可以用#。
29. E 在format也是科学计数法
结果:12.003E2
%是百分号
结果是:1234.57%
在这种情况下,小数点右侧取能取到的最小值,左侧取能取到的最大值,这是为了保护数据的精确性。
31. 分隔符 例子: keyboard2.useDelimiter("##"); 系统默认是空格whitespace为分隔符。