高手真经 13条Java核心技术

开发 后端
作者在工作中总结了13条Java的核心问题,对于刚步入公司的程序员来说还是非常不错的。

1、  >>>***位用0填充,>>***位用符号位填充 ,没有<<。

2、 强制转换是直接截断,要四舍五入的话需要用Math.round();

3、 boolean不要于任何数值类型进行转换。除非b?1:0

4、Java没有内置字符串类型。

5、String类没有提供用于修改字符串的方法,方便字符串共享。

6、C++重载了==,可以用它来检测字符串的相等性。Java没有重载。C也不用==对字符串进行比较,而使用strcmp函数。Java的compareTo()方法与strcmp类似。

  1. greeting.compareTo("Hello")==0 

7、length()返回代码单元数量;

codePointCount()返回代码点数量。

charAt(n)将返回位置n的代码单元,n介于0-s.length()-1。

得到第i个代码点,

  1. greeting.offsetByCodePoints(0,i); 
  2. greeting.codePointAt(i); 
  1. StringBuilder builder = new 
  2. StringBuilder();builder.append(ch/str); 
  3. or String completeString = builder.toString();

返回一个与构建器或缓冲器相同的字符串。

8、输入: Scanner类位于 java.util.*

Console类可以实现控制台读取密码:

  1. Console cons = System.console(); 
  2. String username = cons.readLine("User name:"); 
  3. char[] passwd = cons.readPassword("Password:"); 

9、被格式化的参数索引:

  1. System.out.printf("%1$s %2$tB %2$te %2$ty""Due date:" , new Date()); 

10、文件的输入与输出:

  1. Scanner in = new Scanner(new File("myfile.txt")); //如果文件名包含反斜杠 ,要转义,加一个反斜杠。 
  2. PrintWriter out = new PrintWriter("myfile.txt"); 

如果用一个不存在的文件构造一个Scanner,或者用一个不能被创建的文件名构造一个PrintWriter,那么就会发异常。

11、如果整数,浮点不能满足精度要求,可以使用java.math包中的两个类:BigInteger 和 BigDecimal

  1. BigInteger a = BigInteger.valueOf(100); 

不能使用+ *来处理大数值,而是add 和multiply方法。

12、

  1. for(variable : collection) statement; 

打印数组更见的方法: Arrays.toString(a); //返回一个包含数组元素的字符串。

数组的初始化:

  1. 1int[] smallPrimes = {2,3,4,5,6,7}; //不需要使用new。 
  2. 2new int[] {2,3,4,5,6,7//匿名初始化,将创建一个新的数组 并利用括号中提供的值进行初始化,数组的大小就是初始值的个数。 

Java允许数组长度为0。

允许数组拷贝,这是两个变量引用同一个数组。如果要拷贝到一个新的数组 需要使用Arrays.copyOf(number , length),通常用这个方法来增加数组的大小,剩余的数值赋0,布尔型赋false。

Java数组与C++数组在堆栈上有很大不同,但基本上与分配在heap上的数组指针一样。

  1. int[] a = new int[100]; //java []被预定义为检查数组边界,而没有指针运算,即不能通过a+1得到数组下一个元素。 

不同于

  1. int a[100//c++ 

而等同于

  1. int *a = new int[100]; //c++ 

数组排序: sort

快速打印一个二维数组的数据元素列表:Arrays.deepToString(a);

Java实际上只有一维数组。

13、命令行参数

java Message -g cruel world
args[0]: "-g" args[1]:"cruel" args[2]: world

原文链接:http://www.cnblogs.com/cx361/archive/2011/11/22/2258535.html

【编辑推荐】

  1. Java的ClassLoader机制解析
  2. 11月份的Java面试题新鲜出炉
  3. 精解Java中代理模式的实现
  4. 解析Java finally的神秘面纱
  5. 调用Java NIO提高文件读写速度
责任编辑:林师授 来源: 十分爱的博客
相关推荐

2009-06-15 17:54:50

Java核心技术

2011-05-20 09:56:15

J2EE

2009-06-22 17:32:25

J2EE平台

2017-03-08 10:06:11

Java技术点注解

2022-10-11 08:37:43

Servlet配置版本

2022-05-07 14:31:46

物联网

2023-06-14 08:49:22

PodKubernetes

2009-06-26 16:01:39

EJB组织开发EJB容器EJB

2016-11-15 14:33:05

Flink大数据

2022-05-09 08:21:29

Spring微服务Sentinel

2010-06-29 09:06:39

Java思想Java虚拟机

2011-05-18 09:32:14

java

2020-12-10 11:00:37

JavaJVM命令

2016-11-22 17:05:54

Apache Flin大数据Flink

2016-12-12 09:01:47

Amazon Go核心技术

2019-05-15 08:26:44

工业物联网MQTT物联网

2022-05-16 08:22:11

网关过滤器路由

2018-05-16 11:05:49

ApacheFlink数据流

2019-05-15 08:40:34

工业物联网MQTT物联网

2019-03-05 14:57:21

大数据Hadoop框架
点赞
收藏

51CTO技术栈公众号