`
jianchen
  • 浏览: 334370 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java基础复习(2)

阅读更多

java中的TRUE和false不可以用1和0代替
java各整数类型有固定的表数范围和字段长度,而不受具体操作系统的影响,以保证java程序的可移植性。
32位和64位,处理器和数据总线。因为对于有些编程语言,他们定义的int在不同机器上,实际的长度有可能不一致,那样就导致了程序的移植问题。
java语言整型常量的三种表示形式:
十进制
八进制,要求以0开头,如012
十六进制,要求0x或0X开头,如0X12
java语言的整型常量默认为int型,如int i=3

int i = 1L; 错误的写法,编译时报可能损失精度错误

java字符采用的unicode编码
char型数据用来表示通常意义上的“字符”
字符常量是用单引号括起来的单个字符
char c = ‘A’
java字符采用Unicode编码,每个字符占两个字节。因而可以用十六进制编码形式表示(前缀u表示unicode编码,如char c=‘\u0061’,该字符表示字母a)
char c = 20013;中文的'中'字在unicode的编码的十进制表示为20013;System.out.println(c);能够打印出‘中’字。
java语言中还允许使用转义字符‘\’来将其后的字符转变为其他的含义,char c = ‘\n’,代表换行符。
gb2312<gbk<GB18030,各种中文编码的差异在于收入的字符数的多少。GB18030还包含了其他民族的文字。
在讲解编码问题时,想到将文档传给别国人员浏览时,需要注意编码的问题,在以后的工作中应该注意。

java的浮点数默认为double类型的。示例代码:
double d = 12;System.out.println(d);//打印结果为12.0
float f = 12.5; System.out.println(f);//编译报错,因为12.5默认是double类型的。应修改为:

float f = 12.5f;


float表示的范围比int大,但精度不如int,float表示的只是近似值,在0和1之间的数都是无穷的,所以它只能是近似的表示方法。


>>>表示算术移位
注意:int a = 4/5*5;结果为0


闰年的判断规则:
公历纪年法中,能被4整除的大多是闰年,能被100整除而不能被400整除的年份不是闰年,能被3200整除的

也不是闰年,如1900不是闰年,200年是闰年,3200年不是闰年。


示例代码:

import java.io.*;
class RunNian{
    public static void main(String[] args){
        String str = null;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        while(true){
            try{
                System.out.println("请输入一个正整数");
                    str = br.readLine();
            }catch(Exception e){
                    System.out.println("输入异常");
            }
        int year = Integer.parseInt(str);
        if(year%4==0){
            if((year % 100==0) & (year % 400==0)){
                if(year%3200==0){
                    System.out.println("不是闰年");
                    continue;
                }
                else{
                    System.out.println("是闰年");
                    continue;
                }
            }
            System.out.println("是闰年");
        }
        else
            System.out.println("不是闰年");
        }
    }
}
 



感觉我的判断方法还是有些烦,我是正过来思考问题,对满足条件的输入做进一步的判断验证,下面的方法更好些吧(逆过来思考方式)。

 

if(year%3200==0){
    System.out.println("not leap year");
}else if(year%400==0){
    System.out.println("is leap year");
}else if(year%100==0){
    System.out.println("not leap year");
}else if(year%4==0){
    System.out.println("is leap year");
}
 



代码二:
打印输出输入的数字的各位:

 

int num = 2143;
int t1 = 2143/1000; //算出千位
int t2 = (num % 1000)/100;//算出百位
int t3 = (num % 100)/10;//算出十位
int t4 = (num % 10);//算出个位

 

需要考虑的问题:对于不定位数的数字,如何计算?
答:可以针对在控制台输入的字符串的长度,即可获知数字的位数,利用循环。

判读一个数是否为偶数:
将该数与1做与运算,结果为1则为奇数,结果为0则为偶数。

linux下的权限,分为读,写,执行,分别对应421;7(111)表示读,写,执行权限都具备。

chmod命令可以通过指定具体的数字来表明权限。
使用按位与操作即可获得权限值。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics