JAVA学习笔记

1. java保留两位小数。

 

String的format方法(推荐)

double value= 111231.5585;

System.out.println(String.format("%.2f", value));

2. String强制转换为double或者int。

String s;

double d = Double.parseDouble(s);

int差不多,int i = Integer.parseInt(s);

3. 二进制运算(与、或、非)

与:运算符号为&,运算规律是:真真为真,真假为假,假假为假

1&1//1
1&0//0
0&0//0

或:运算符号为|,运算规律是:真真为真,真假为真,假假为假

1 | 1 //1
1 | 0 //1
0 | 0 //0

非:运算符为~,取反的逻辑,运算规律:二进制位若为1,取反后为0。若为0,取反后为1

~1 //~00000001 =>11111110//代表-2 

4. 简单的判断奇偶数方法(i & 1) != 0 ,i为奇数。

5. 神奇的 i & (i-1)--->还没有搞懂这个是干啥的。

&是按位与,对应位都为1时该位得1,否则得0。

所以 i&(i-1) 的作用:将i的二进制表示中的最低位为1的改为0。

6. Arrays.sort()对二维数组排序。

int [][]a = new int [5][2];

//定义一个二维数组,其中所包含的一维数组具有两个元素

//对于一个已定义的二位数组a经行如下规则排序,
//首先按照每一个对应的一维数组第一个元素进行升序排序(即a[][0]),
//若第一个元素相等,则按照第二个元素进行升序排序(a[][1])。
//(特别注意,这里的a[][0]或者a[][1]在java中是不能这么定义的,
//这里只是想说明是对于某一个一维数组的第0或1个元素进行排序)

Arrays.sort(a, new Comparator<int[]>() {
	@Override
	public int compare(int[] o1, int[] o2) {
		if (o1[0]==o2[0]) //如果o1等于o2,根据第一个dimension(元素)进行排序。
			return o1[1]-o2[1];
		return o1[0]-o2[0];//如果o1不等于o2,根据二个dimension排序。
	}
});
//其中o1[1]-o2[1]表示对于第二个元素经行升序排序如果为o2[1]-o1[1]则表示为降序。

7.  static关键字的用途。

8. length和length()的区别。

length()方法是求String字符串对象中字符的个数,而length是求字数组中有多少个元素。

public class Test {
    public static void main(String[] args) {
        String str ="abcdefg";
        int a[] ={1,3,5};
        System.out.println(str.length());//String中length()方法
        System.out.println(a.length);//数组的属性
        //结果输出 7  3
    }
}

9. Integer和int之间的转换。

int到Integer:

int a=3;

Integer A=new Integer(a);

or:

Integer A=Integer.valueOf(a);

Integer到int:

Integer A=new Integer(5);

int a=A.intValue();

至于 Integer.parseInt(String str) 则是将 String 类型转为 int 类型。

      int 类型是放在栈空间的,Integer 是作为对象放在堆空间的;

      int 是基本类型,不是类,为了符合面向对象编程,后来出现了 Integer 类,他是对 int 进行封装的。

      int 不是对象,是 java 原始的数据类型,它默认值为0。

      Integer 是个对象,它有自己的方法,默认值为NULL。

10. Java开根号

import java.lang.Math;
double i = 56;
Math.sqrt(i);

11. double的方法

Double.parseDouble方法是把数字类型的字符串,转换成double类型

Double.valueOf方法是把数字类型的字符串,转换成Double类型

12. 位移运算符

位移运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。

  • 3 << 2

首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12.

数学意义:在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。

  • 11 >> 2

计算过程:11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 0010.转换为十进制是3.数学意义:右移一位相当于除2,右移n位相当于除以2的n次方。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值