- public class MainActivity extends Activity {
- private ListView lv;
- private List<Question> qs;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- lv=(ListView)findViewById(R.id.listView1);
- }
- private List<Question> parseQuestions() {
- List<Question> qs=new ArrayList<Question>();
- InputStream in=getResources().openRawResource(R.raw.q);
- try {
- BufferedReader reader=new BufferedReader(new InputStreamReader(in, "GBK"));
- String line;
- int i=0;
- Question q=null;
- while((line=reader.readLine())!=null){
- switch (i++%5) {
- case 0: //获取到了标题
- q=new Question();
- q.setTitle(line);
- break;
- case 1: //获取到了选项A
- q.setA(line);
- break;
- case 2: //获取到了选项B
- q.setB(line);
- break;
- case 3: //获取到了选项C
- q.setC(line);
- break;
- case 4: //获取到了选项D
- q.setD(line);
- qs.add(q);
- break;
- }
- }
- } catch (IOException e) {
- e.printStackTrace();
- return null;
- }
- return qs;
- }
核心,
InputStream
in
=
getResources
().
openRawResource
(
R
.
raw
.
q
);
BufferedReader reader
=
new
BufferedReader
(
new
InputStreamReader
(
in
,
"GBK"
));
按行读取。
2. int j=0;
for(int i=0;i<100;i++){
j=j++;
}
System.out.println(j); 输出:0
for(int i=0;i<100;i++){
j=j++;
}
System.out.println(j); 输出:0
j=j++ 其实等于 坐了如下2个操作:
1:j自己增加1 变成1;
2 : 然后将自增前的0又赋值给j 所以j=j++ 始终为 0
un 设计的 JVM 工作就是 他是先执行 ++ 然后再赋值(而且赋的值是自增前的值),
人家规定好的 不是我们能改变的 执行顺序固定死了
改成 j =++j 结果就不是0了,输出100
int j=0;for(int i=1;i<100;i++) j=j++;c++里得到j结果和c#里怎么不一样?
c++里是99;
c#里是0;
Java里也是0;
C++ 传值调用
C#,Java 传引调用.