课程咨询热线
400-835-7866务必重视书写
读题
要勤于动笔
code tracing table
索引
错误与异常汇总
编译错误
运行时异常
数组相关
ArrayList 相关
String、Array 和 Array List 的区别
访问长度
访问元素
列表删除元素
列表中插入元素
编写类的题目
哪些是属性
数组
查找元素
二维数组
ArrayList 删除元素
写代码
大题中的继承
继承
对象的调用
字符串
unit 1 primitive type and data
运算优先级
unit 2 using object
unit 3 boolean expression
iteration
书写!书写!还是书写!
一个真诚而朴实的建议就是,计算机的题干至少读两遍,很可能某个方法的关键在你看不到的某句话中的定语从句。
一定要看清楚,题目给了哪些类;有哪些实力方法和实例属性 instance variable 和 instance method。
要熟悉基本的 while、for、if、elseif 的用法,然后用 code tracing table 认真分析做题。
任何程序都可以分解为顺序、条件和循环三种基本结构,只要有耐心,结合 code tracing table,基本上都能做对,遇到题目千万不要慌,code tracing 来帮忙,不要被“看上去很长“代码吓到,耐心分析。
"abc".substring(2, 3)或者"abc".substring(3)不会报错[0, list.size)for (int i = 0; i < arr.length; i++)for(int i = 0; i < arr.length-1; i++都是对的
java 代码翻译成可以执行的代码过程中发生的错误,程序无法翻译成可执行的代码
compile-errorint a = 3.2;整数无法转换成小数,会导致错误运行时异常说的是 run-time error,代码语法没错,但是运行报错
String s;
s.length(); // NullPointerException
字符串等对象,如果只是声明变量,没有初始化默认值是 null,在 null 上调用会导致异常,判断一个对象是不是 null 应该用 object == null或者 objec != null。
String s = "hello";
s.substring(2, 100); // ArrayIndexOutOfBound
字符串索引越界
String[] names = new String[];
names[0].length; // NullPointerException
数组中的对象,如果没有初始化,默认是 null。
names[10]
数组索引越界。
ArrayList<String> list = new ArrayList<String>();
list.add("hello");
list.add(list.size(), "a"); // 不会报错
list.add(list.size() + 1, "a"); // 会报错
| list.get(list.size()) | ArrayListIndexOutOfBound |
|---|---|
| list.get(list.size()-1) | 不报错 |
| list.set(list.size(), "s") | ArrayListIndexOutOfBound |
| list.set(list.size()-1, "s") | 不报错 |
| list.remove(list.size()-1, "s") | 不报错 |
| list.remove(list.size(), "s") | ArrayListIndexOutOfBound |
for (String s : list)
{
list.add("s"); // ConcurencyExcepiton
}
不要在 for 中修改元素,否则会导致异常。
| String | str.length() |
|---|---|
| ArrayList | list.size() |
| Array | arr.length // 注意是属性没有括号 |
| String | str.substring(i, i+1) str.charAt(i) |
|---|---|
| Array | arr[index] |
| ArrayList | list.get(i) |
| 2dArray | arr[rowIndex][colIndex] |
注意数组中元素只能修改不能删除;列表中的元素可以删除。
列表删除元素建议倒着写,防止跳过元素
注意 for 循环的用法,一般是按照顺序插入,如果没有找到需要插入的元素,在最后插入。

如果选择题中遇到了 binaray search,注意,一定是排好序的数据。
public static count(int[] arr, int val)
{
int count = 0;
for (int i = 0; i < arr.length; i++)
{
if (arr[i] == val)
{
count += 1;
}
}
return count;
}
假设变量 mat是二维数组:
String[][] mat = {{"a", "b"}, {"c", "d"}};
int rows = mat.length; 2
int[] firstRow = mat[0] // {"a", "b"}
int cols = mat[0].length // 列数,2
public static void del(ArrayList<String> list, String val)
{
for (int i = 0; i < list.size(); i++)
{
String item = list.get(i);
if (item.equals(val))
{
list.remove(i); // or list.remove(item)
i -= 1; // avoiding skipping item
}
}
}
super()。注意 return if 和 else if 的混合考法,if 语句顺序执行的;注意 else if 的逻辑错误。
"a".compareTo("b")结果 -1,b 在后面,结果必然是负数,然后 b 在 a 大后一位"b".compareTo("a"),结果是 1"abc".compareTo("abcde"),结果是 -2,如果比较下来没有不同的字符,那么就取长度的差值
Math.random()考察.的运算优先级比强制类型转换搞

这个途中,注意复杂表达式的写法。



注意 elseif 语句满足一个条件,其余的不看了,所以要注意这里容易考察的逻辑错误。

注意用 tracing table 解决问题。

注意一般情况下,条件执行的次数比循环执行的次数多 1。
更多AP计算机课程辅导
扫码添加小助手
👇👇👇

TEL:15601735269(同V)

犀牛国际坚持小班化、个性化的教育模式,能让授课老师在最大程度关注到每一位学生的学习动态与知识掌握程度,用精英老师来培养精英学生,让学生学习优秀的方法,为学生埋下优秀的基因。
犀牛国际AP培训课程开设了精品小班、一对一等多种班型,家长和同学们可任意选择,线下+线上同步授课,在上海、北京、南京、苏州、无锡、杭州、广州、深圳、青岛、合肥、武汉、济南、成都等地均设有线下校区,注:各校区班型不同,具体扫描底部二维码咨询!
国际竞赛 · AMC8 / AMC10 / IB / IGCSE / AP / A-Level · 留学规划
客服随时在线,欢迎拨打犀牛教育官方联系电话咨询课程
微信咨询
微信扫一扫