- 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;
- }
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 傳引調用.