Java【U1-U4】

GUI

import javax.swing.JOptionPane;
JOptionPane.showMessageDialog(null,消息框内容,消息框头,JOptionPane.INFORMATION_MESSAGE);
//static method
String string=JOpionPane.showInputDialog(null,x,y,JOptionPane.QUESTION_MESSAGE);
int intValue=Integer.parseInt(string);
int option=JOptionPane.showConfirmDialog(null,消息内容);
//option取值:JOptionPane.YES_OPTION(0),JOptionPane.NO_OPTION(1),JOptionPane.CANCEL_OPTION(2)。

System,Math在java.lang包里,不需显式引用。

字符串常量不能跨行。可以分成子串用+号连接。

Console input:

import java.util.Scanner;
Scanner input=new Scanner(System.in);
int num1=input.nextInt();
double num2=input.nextDouble();
//输入可一行或多行

□nextByte(),nextShort(),nextLong(),nextFloat()
□next():空格前。nextLine():读一整行,换行前。且它不能用在其它几个后面。

常量:final double num1=2.5;//final必须声明时赋值

被除数为正时,余数才为正。

星期几问题:今天周二,100天以后周几?(2+100)%7 //周日记0。

浮点数

1、浮点数是粗存储,计算有时会产生误差。1.0-0.9=0.0999999998≠0.1
2、float:10.2f。double:10.2d。
3、5/9=0,5.0/9=0.56。
4、一整数与一浮点数运算,整数自动转为浮点。

现在时间

public static void main(String[] args){
long totalMilliSecond=System.currentTimeMillis();
int offset;//时区偏移量
long totalSecond=totalMilliSecond/1000;
long currentSecond=totalSecond%60;

long totalMinute=totalSecond/60;
long currenteMinute=totalMinute%60;

/*long totalHour=totalMinute/60;
long currentHour=totalHour%24;//格林尼治时间
*/
long totalHour1=totalMinute/60+offset;
long currentHour1=totalHour%24;

System.out.println("Current time:"+currentHour1+":"+currentMinute+":"+currentSecond+"GMT");
}
//eg.北京属于东八时区,时间要在格林尼治时间GMT基础上+8。

Q:用currentTimeMillis显示大写字母。

long second=System.currenTimeMillis()/1000;
int num=(int)(second%26+65);//A-Z为[65,90],加65前为[0,25]即[0,26)才能保证取全。
syso((char)num);

Cast

1、cast不改变本身值。
2、大转小要显式标注。
3、int变char:只留低16位。float先变int再变char。所有数都能cast成char。另一操作数为数字/字符时,当前char将cast为数字。
4、char变数值:存入Unicode值。
5、boolean不能和其它类型任意转换。

‘a'-'A'='b'-'B'=(char)('A'+(ch-'a'))

byte,short,int,long分别占1,2,4,8字节内存。long和float型结尾要加上l,f。char占2字节。

java使用Unicode标准字符集,双字节,可识别65535个字符。Unicode:\u

String后面有数/字符:连成字符串。

随机生成数:Math.random()|| System.currentTimeMills()%10

if(xxxx);等价于:if(xxxx){};

结束程序:System.exit(0);//0表示正常结束

异或:^
逻辑与或是短路的。
在这里插入图片描述

控制输出小数位:
eg. System.out.println(int(num*100)/100.0);
or System.out.printf(%b,%c,%d,%5.2f,%7.3e,%s);//可自动四舍五入

输出%:%%

操作符优先序:
数据类型优先级正比于占用存储空间大小。
在这里插入图片描述a=b+=c=5等价于a=(b+=(c=5))。令a=b=c=1,赋值后结果:a=6,b=6,c=5。

cmd文件形式输入输出:java Classname < iput.txt > output.txt

循环里声明的变量在loop结束后没法再用。
continue只会出现在loop内。

switch语句表达式的值必须是整型/字符型。

main()是程序开始执行的位置。主方法控制程序流向。

减小误差:先加小的数,后加大的数。

最大公约数:

int gcd=1;
int i=1;
while(i<=num1&&i<=num2){
	if(num1%i==0&&num2%i==0) gcd=i;
	i++;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值