Java小知识

循环等

println输出会换行,print不会。

定义常量用final。final int c = 10;

if括号里不能是0或1,只能是布尔变量(TRUE/FALSE)

标号:

  OUTfor(...)
  {
       for 
       {
            for
            {
                ....;
                break OUT;
            }
       }
  }

break语句直接跳出OUT标明的for语句。标号可以自定义。

for-each循环
格式:for(<类型> <变量> : <数组>) …
for(int k : data){......}
k在第一轮循环等于data[0];第二轮等于data[1]…(data为数组)

数组

数组定义: <类型> [ ] 数组名 = new <类型> [个数]
int [] a = new int[10]

每个数组有一个内部成员length,会告诉你它的元素的数量。
所以遍历a数组最好写成for(i=0; i<a.length; ++i) 而且有扩展性。

Java会自动初始化数组为0。

注意:

public class Hello {

	public static void main(String[] args) {
       Scanner in = new Scanner(System.in);
       int[] a = new int[10];
       a[0] = 5;
       int[] b = a;
       System.out.println(a[0]);
       b[0] = 16;
       System.out.println(a[0]);
       System.out.println(b[0]);
	}
}

输出的值分别是 5 16 16.
因为a虽然是一个变量,但在它里面没有那个数组,它是管理着另外某个位置的10个int的数组。
int[] b = a 让b管理a所在的数组(类似于C中的指针)。所以之后的a[0]与b[0]都是同样的对象。
数组变量之间的赋值就是管理权限的赋予。

public class Hello {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
       Scanner in = new Scanner(System.in);
       int[] a = {1,2,3,4,5};
       int[] b = {1,2,3,4,5};
       System.out.println(a==b);
	}
}

输出的是false.
因为初始化了两个不同的对象(内存地址不同)。
所以复制数组必须遍历拷贝。

二维数组初始化:

int [][] c= {
    {1,2,3,4}{1,2,3}};

最后的逗号可要可不要,省略的为0.

遍历二维数组a[][]

for(int i=0;i<c.length;i++)
{
     for(int j=0;i<c[i].length;j++)
     {
    	 ......;
     }
}

注意是c[i].length.

字符串

Java用的是Unicode编码。
a排在A的后面,即a > A.

char类型的变量只能放一个字符/数字/汉字。char c = 'a'.

逃逸字符:
\b 回退一格(在eclipse中显示为一个框框)
\t 到下一个表格位(对齐)
\n 换行
\r 回车

包裹类型:
Boolean —— boolean
Character —— char
Integer —— int
Double —— double
可以获得该类型的最大最小值。
Character.toLowerCase('A')可以将A转化为小写。

创建字符串:
String s = new String ("astring")
可以用+连接两个字符串,若不是字符串,系统会把它转换为字符串再操作。

s=in.nextLine(); 会输出完整字符串;
s=in.next(); 输出第一个空格前的。

.equals()判断两个字符串内容是否相等。
System.out.println(str1.equals(str2));

.compareTo()判断两个字符串的大小。
结果是1就是大,0是相等,-1是小。

.length获得字符串的长度。

.charAt(index)访问字符串里的单个字符。
index是数字,第一个字符的index是0,与数组一样。
字符串不能用for-each循环。

.substring(n)得到从n号位置到末尾的子串;
.substring(b,e)得到从b号位置到e号位置之前的子串。

.indexOf()寻找字符;(-1表示不存在)
s.indexOf(c,n)从n号位置开始寻找c字符。
从右边开始找用.lastIndexOf().

//.trim() 把字符串两端空格删掉。

.replace(c1,c2) 将字符串中所有的c1换成c2.

.toLowerCase()将字符串都变为小写;
.toUpperCase()转换为大写。//

注:所有的字符串都是不可变的,对它们的操作的结果都是创造新的字符串出来。

在1.6更高的版本可以在switch-case中使用字符串。

switch(s){
case "this": ... break;
case "that": ... break;
}

函数

函数头:public static+返回类型+函数名().

public static void sum(int a, int b)
{
    ......
}

void 函数名不能使用带值的return。

当函数期望的参数类型比调用函数时给的值得类型的时候,编译器能替你把类型转换好。
char->int->double 越右边越宽。

Java调用函数时,永远只能传值给函数。(与C一样)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值