码迷,mamicode.com
首页 > 编程语言 > 详细

Java随笔_1

时间:2015-08-06 13:02:32      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

1

    Java语言能控制的是栈空间和堆空间。
    栈空间:基本类型数据。(存取效率高,空间小)。
    堆空间:大数据。(存取效率低,空间大)。
2
 为什么使用变量?
         用内存地址访问麻烦。
         变量可以简化运算。
         具体如下代码:(Math.round()只能保留到整数位,若要保留一位小数需要乘以10然后在除以10.0!不能为10)。
System.out.println(Math.round(10*(Math.sqrt(20)+Math.sqrt(10))/(Math.sqrt(20)-Math.sqrt(10)))/10.0);
double sqrt_20=Math.sqrt(20);
double sqrt_10=Math.sqrt(10);
double result=(sqrt_20+sqrt_10)/(sqrt_20-sqrt_10);
System.out.println(Math.round(result*10)/10.0);
3
    Java默认是双精度字节,需要用float单精度时,在数字后面加上f,否则会出现语法错误。
        float height= 1.99f;
4
    Java中变量只在作用域中起作用,在作用域外后被JVM回收。
5
包装类:
     包装类包含了一些常用的方法与常量,如Byte.MIN_VALUE。
System.out.println(Byte.MIN_VALUE+"~"+Byte.MAX_VALUE);
System.out.println(Byte.parseByte("108")+10);
System.out.println(Integer.MIN_VALUE+"~"+Integer.MAX_VALUE);
System.out.println(Integer.parseInt("50000")+5);
System.out.println(Integer.toBinaryString(16));
System.out.println(Integer.toHexString(16));
6
    long整型时后面最好加入L或者l,因为有时可能会出现报错。 long longvalue=22000000000L;
    System.out.println(longvalue);
    java底层代码short(byte)按照32位(int类型)进行计算,有时需要强制转换。
byte b1=125;
byte b2=(byte) (b1+2);
    以上代码强制转换的原因是int类型不能够直接转换成byte类型。
    以下代码强制转换的原因是计算的时候超出了byte类型所能表示的范围,如果没有超出则不用进行转换。
byte b3 = (byte)(125+3);
b3=125+1;
7
    float类型存储数据的范围大于Int类型,但是精度小于int类型。float 类型精度是23位,而int类型的精度是31位。
    double类型八个字节,1号符号位,11位指数为,52位尾数。double类型存储数据范围大于long类型,但是精度不如long类型,double精度52位,long类型精度63位。
    进行运算时最好少用浮点型进行运算。
double a = 2.6;
System.out.println(a-2);
    显示的数据是0.6000000000000001,有误差。
    判断两个浮点数的时候不要用等于号。
8
    Java中char类型用16位整数进行,该数值是一个字符的unicode的编码值,Java在底层是用Unicode进行处理。
9
    Java中单个boolean类型是4个字节,与int一样。当为数组时时byte类型。
10
    自动转换类型从小类型向大类型转换,转换规则符号自动扩展,负数补1,整数补0。
11
    由精度高的转换为精度低的时候,精度可能会丢失,比如int转换成float时丢失。
int i = 0x1000001;
float ii=i;
System.out.println(Integer.toBinaryString(i)+":"+i);
System.out.println(Integer.toBinaryString((int)ii)+":"+ii);
技术分享
   long转换为double有时也可能会丢失。
long i = 0x200000000000001l;
double d = i;
System.out.println(Long.toBinaryString(i)+":"+i);
System.out.println(Long.toBinaryString((long)d)+":"+d);
技术分享
12
    强制类型转换时要注意一些问题:
    下面一段代码:
byte i = 5;
i=(byte)(i+5);
i=5+5;
 
    注意Java在byte计算中变量默认为用int类型进行计算,最后得到的值需要进行转换。而不用变量计算直接用常量进行计算的值不需要进行转换。
    发生此现象的原因是编译时期用常量可以判断取值范围,而用byte变量进行计算的时候无法判断其取值范围。
13
    args为String类型,进行获取时需要设置初始值。
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
System.out.println(a+b);
System.out.println(b+b);
14
    用Scanner类型来用作系统的输入方式,切记Eclipse中用中文输入的时候会出现一些问题,可以通过复制粘贴中文来进行。
    next读取下一个字符,以空格作为分隔符,nextLine读取下一行字符,以换行符为结束。
Scanner scan=new Scanner(System.in);
System.out.println("姓名:");
String name =scan.next();
System.out.println("性别:");
char sex = scan.next().charAt(0);
System.out.println("年龄:");
int age = scan.nextInt();
System.out.println("身高:");
double height = scan.nextDouble();
System.out.println("性格:");
String type=scan.next();
System.out.println("我的名字是"+name+",我的性别是"+sex+",我的年龄是"+age
+",我的身高是"+height+",我的性格是"+type);
15
    不借助变量,在两个变量中交换值。
int a =3,b=4;
a = a + b;
b = a - b;
a = a - b;
System.out.println(a+":"+b);
16
    程序错误主要包含编译错误,程序运行异常错误(除以0),逻辑错误。

Java随笔_1

标签:

原文地址:http://www.cnblogs.com/GoFly/p/4707612.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!