1.百战铁路售票系统——余票查询
public class TicketSearch {
public static void main(String[]args){
//将定义变量尽可能放在前面
TicketSearch aa=new TicketSearch();
aa.ticketSell();
}
//使用面向对象
public void ticketSell(){
String tickeNo="G393";
String startId="北京西";
String arrive="赣州东";
String setTime="15:05";
String arriveTime="21:09";
String passTime="05:09";
int outTicket=1;
double priceTicket=433.0;
System.out.println("百战铁路售票系统————>余票查询");
System.out.println("____________________________________________________________________");
System.out.println("车次\t"+"\t 出发站"+"\t到达站"+"\t出发时间\t"+"到达时间\t"+"历经时长\t"+"\t票价");
System.out.println(tickeNo+" \t"+startId+"\t"+arrive+" \t"+arriveTime+"\t"+arriveTime+"\t"+passTime+" \t"+"\t"+priceTicket);
}
}
运行结果:
2.第三章:逻辑运算符
1.自加:需要注意的是,是将值取出来后,加一或减一之后,再次存入变量之中,我的疑惑,改变后,他们的内存地址是否发生变化?验证开始:
1.java中是没有真正的内存地址,所有的堆里面的数据存放于JVM虚拟机当中,这也是后面需要重点去了解的东西
2.查看变量在虚拟机之中的位置:
int a=34;
int hashCode = System.identityHashCode(a);
System.out.println(hashCode);
运行结果:
刚开始想用hashCode函数获取,但java的ipi不能够直接获取,就放弃了
3.要知道,栈内存比堆内存存储速度要快的多
4.经典题目
public class TicketSearch{
public static void main(String[]args){
short s1=1;
s1=s1+1;
s+=1;
}
}
显然,第二个是错误的,因为在java中,s1是短字节的,short占用两个字节,而int为四个字节,s1+1中将s1的short短字节自动提升为int类型,java中默认计算的好像是int类型的数据,所以s1+1结果为int类型,而将值再次赋值给s1,一个short类型的,显然不行,所以会出现下面的报错信息:
4.循环分支结构:
charAt():一个有意思的字符索引的函数,好像一般用于判断用户输入的某个字符,自己敲代码验证:
import java.util.Objects;
import java.util.Scanner;
public class TicketSearch{
public static void main(String[]args){
Scanner input =new Scanner(System.in);
System.out.println("——————————判断用户输入的答案————————————————");
System.out.println("你是否喜欢她:(回答T or F)");
char answer=input.next().charAt(0);
if (Objects.equals(answer, "T")) {
System.out.println("原来你真的很喜欢她!");
}
else{
System.out.println("你骗人,你明明喜欢她!");
}
}
}
运行结果:
有点差强人意,好像是在这个1.8的jdk当中,字符不能用==来比较,这就比较离谱,不是自己想要的样子,还用了ipi提供的toString()方法,但是貌似不能用,他只是为了方便用户查看结果,就比如说,有时候不用toString()的方法,会返回hash码值,也就是虚拟机当中的地址值,是不是这也就java可以查阅平台之间可以相互进行交互的重要方式呢?答案有待我的探索
最后,操作系统课笑死我了:看图:(get恋爱小技巧!)