要准备学习下java了,按着《core java》的内容,简单的做了一下笔记。这本书有很多地方对C++和java的语法作了对比,所以对于从C++向java方向转的人来说,非常有利!
javac xxx.java 
java  xxx
java applet: appletview xxx.html (浏览器加载)
第三章 基本类型
1) 对大小写敏感   强调main方法时公有的	
2)java没有无符号类型
3)float后面必须有F 标记,double 也可以加上D
4) 错误溢出:正无穷  负无穷  NaN(非数字 0/0=NaN)
  可以用  Double.isNan(x) 判断是不是非数字
5)char类型  转换Unicode编码方便   不建议使用
   32→空格
   48→0
   65→A
   97→a
6)常量 final  类似于 const	
7)位运算 与 或 异或 非  (可用来屏蔽某些位)
  移位操作 <<  >>       (快速计算或屏蔽位)
  >>> 用来填充最高位
8)Math库 包含数学方法与符号
9)强制转换 cast
10)String  这是一个预定义类
    截取字串   substring(int index,int length)
    拼接       + 
    截取和拼接可以动态改变字符串长度
    不要用==号比较字符串大小    (c: strcmp)
    因为String时一个类,所以改变字符串时,会重新指向新的字符串,原有的字符串就会被释放掉
    
    字符串长度为0和null 不是一码事,null表示没有任何对象与之关联
    字符数据类型是一个采用UTF-16编码表示Unicode代码点的代码单元
    因为有些字符咋不同编码下,字符长度不同
    length()  返回UTF-16下的代码单元
/////////////////////////////////////////////////////
    charAt()  	返回指定位置的代码点,注意不是字符!!
    codePointCount(0,str.length())  返回字符串char(代码点)的数量
/////////////////////////////////////////////////////
String APi
compareTo(String other)  //顺序比较
startWith(String prefix)
endsWith(String suffix)
substring()// 若干重载   分割
equal(Object other)
equalIgnoreCase(String other)//忽略大小写
indexOf() //若干重载函数 返回第一个匹配位置
lastindexOf()		  返回最后一个匹配位置
length();
toLowerCase()  小写
toUpperCase()  大写
trim()	       删除首尾空白
replace(CharSequence oldString,CharSequence newString) //字符串替换,可以使用StringBuild或String做CharSequence
11)StringBuild(前身 StringBuffer)  构建字符串  如果频繁的改变字符串长度
 StringBuild s = new StringBuild();
 s.append(ch);
 String ss = s.toString();
StringBuild Api
length()
append() //若干重载
appendCodePoint(ing cp)  追加代码点并转化为代码单元
setCharAt(int i,char c) 第i个代码点替换为c
insert(int pos, string/char) 插入
delete(int start,int end)删除srat开始到end-1结束的代码单元
String toString() 将缓冲器内容刷新到String中去
12)输入输出
输出   System.out.println()
输入   import java.util.*  //引入包
	Scanner in = new Scanner(System.in);//System.in  输入流
	String name = in.nextLine(); //控制台输入一行
		      in.next()
		      in.nextInt()/nextDouble()
采用Console 处理不如Scanner方便。Console没有处理输入单个单词或数值的方法
格式化输出printf(与C相似:%s,%d.%f...%tc(时间输出,c完整时间,其他字母还会有不同含义))
同时也可用使用String.format(与C相似:%s,%d.%f...%tc)创建格式化字符串
(c# 使用占位符,索引从0开始,java的从1开始,避免混肴)
13)文件输入输出
读取文件:
使用Scanner,构建一个File对象
 Scanner in = new Scanner(Paths.get("myfile.txt"))//使用双反斜杠转义;之后可以使用 Scanner常规方法  读取一个文件
写文件:
 PrintWriter out  = new PrintWriter(""myfile.txt"")
 ;之后可以使用 System.out常规方法(println、print、printf)  写入一个文件了
Scanner(File f);
PrintWrite(String filename);
static Path get(String parhName) //根据指定路径名构建一个path
///////////////////////
控制流程跳过
///////////////////////
14)大数值   位于java.math库中
BigInterger  实现任意精度整数运算
BigDecimal   实现任意精度浮点数运算
!!!不能重载运算符号  并且也没有办法自定义运算符重载
(先构建对象,在调用方法,省略例子)
valueOf()  可将普通数值转化为大数值
15)数组  new运算符创建空间大小,因为他是创建到堆中的
    不能使用=对数组进行简单的赋值,这是将两个引用指向同一个内存。一个改变后,另一个也会同时改变。同时原有的数组内存将被舍弃回收
凡是在堆上分配空间的,使用=会改变引用对象(或重新创建新对象),同时舍弃原有的对象空间
16)for循环与for each循环
17)数组初始化与匿名数组(默认:数值:0,boolean:false,String:null)
18)数组拷贝
  使用=拷贝时,两个变量指向同一块内存
  
  若向拷贝值,使用Arrays。copyOf(数组名,新数组长度),返回一个新数组
  通常用来改变数组的大小
  类似于c++ 数组指针  int* a = new int[100];(我说咋这么像!!)
		      int[] a = new int[100];
19)命令行参数  public static void main(String[] args);
20)数组排序            随机数 Math.random()  [0-1)的随机数
   Arrays.sort() //快排
   
////////////////////////////////////////
Arrays Api
static String toString(type[] a)
static type copyOf(type[] a,int length)
static type copyOf(type[] a,int start,int end)
static void sort(type[] a)  快排
static int binarySearch(type[] a,type v) 
static int binarySearch(type[] a,int start,int end,type v)二分查找法
static void fill(type[] a,type v)  填充v值
static boolean equal(type[] a,type[] b)
////////////////////////////////////////
21)二维数组  快速打印二维数组a  
System.out.println(Arrays.deepToString(a))
23)锯齿数组   java多维数组类似于数组的数组,数组中的数组
  for(int i = 0;i < a.length;i++) {
    for(int j = 0; j< a[i].length; j++) {
      a[i][j] = 1;
     }
  }
 double [][] d = new double[10][6]
 等同于:
 double **d = new double*[10];
 for(int i = 0; i < 10; i++)
   d[i] = new double[6];
原文:http://www.cnblogs.com/luckyQi/p/6782445.html