孙浩java基础知识教程_java小知识点

char c = 20013;//字符是一个数

System.out.println(c);//中

break结束一个for循环时不会执行for后面括号中最后一个分号后面的语句。

continue结束一次for循环跳入下一次循环之前要先执行for后面括号中最后一个分号后面的语句。

read()  有可能读到1111 1111这样开头的数据 也就是说文件的开头就是-1;read()在读取时候byte提升为int。在前面添加0000 0000.

write()在写入时候只取int的末尾8位有效数据。强转

readLine()方法一行结束标记是回车符。如果用bufferedWriter写一行数据  bout.write(line);  到这里并没有写入回车符;所以要bout.newLine();

凡是用到buffer缓冲的记得flush();

补码

1 -128~+127(1000 0000B~01111111B)2 0111 1111 127

3 1111 1111 -1

4 0000 0000 0

5 1000 0000 -128

System.out.println()的解释:

java.lang.System这是一个类,这个类有3个静态成员变量:in,out,err. 其中out的类型是PrintSream,这个类有一个println()方法。

& 和 &&区别: & :无论左边结果是什么,右边都参与运算。

&&: 短路与,如果左边为false,那么右边不参数与运算。

| 和|| 区别:|:两边都运算。

||:短路或,如果左边为true,那么右边不参与运算。

static

1,静态方法只能访问静态成员,不可以访问非静态成员。

因为静态方法加载时,优先于对象存在,所以没有办法访问对象中的成员。

2,静态方法中不能使用this,super关键字。

因为this代表对象,而静态在时,有可能没有对象,所以this无法使用。

Window->Preferences->General ->Content Type->Text->JSP 最下面设置为UTF-8

Window->Preferences->General->Workspace   面板Text file encoding 选择UTF-8

Window->Preferences->Web->JSP Files 面板选择 ISO 10646/Unicode(UTF-8)

Eclipse最有用快捷键

7. shift+enter及ctrl+shift+enter

Shift+enter在当前行之下创建一个空白行,与光标是否在行末无关。Ctrl+shift+enter则在当前行之前插入空白行。

8. Alt+方向键

这也是个节省时间的法宝。这个组合将当前行的内容往上或下移动。在try/catch部分,这个快捷方式尤其好使。

9. ctrl+m

大显示屏幕能够提高工作效率是大家都知道的。Ctrl+m是编辑器窗口最大化的快捷键。

编码解码的乱码问题

package javaBase.io;

import java.io.IOException;

import java.util.Arrays;

/*

* 编码:字符串变字节数组 String.getBytes(charsetName);

* 解码:字节数组变字符串new String(byte[],charsetName);

* 服务器端:一般是用ISO8859-1(欧洲)不识别中文

*/

public class EncodeDemo {

public static void main(String[] args) throws IOException {

String s = "你好";//默认编码,eclipse我已默认utf-8

byte[] b1 = s.getBytes();//默认utf-8

System.out.println(Arrays.toString(b1));//[-28, -67, -96, -27, -91, -67]

//服务器端解码

String s1 = new String(b1,"iso8859-1");//用ISO8859-1解码出错

System.out.println(s1);//乱码????

//处理乱码:

byte[] b2 = s1.getBytes("iso8859-1");//用ISO8859-1再编码一次

String s2 = new String(b2,"utf-8");//再解码

System.out.println(s2);

/*

* 说明:如果用支持中文的编码解码出错,这样做可能不行,因为解码出错后再编码会把乱码当做中文稀有汉字解码

* 还有“联通”的gbk码符合UTF-8规则

*/

}

}

对象的序列化

package javaBase.io;

import java.io.*;

/*

* 对象的序列化

*/

public class ObjectSerial {

public static void main(String[] args) throws Exception {

writeObj();

readObj();//这个函数不止IO异常

}

/*

* 本地持久化,对象写入硬盘

*/

public static void writeObj() throws IOException{

ObjectOutputStream oout = new ObjectOutputStream(new FileOutputStream("person.obj"));

oout.writeObject(new Person("xukunn",25));

oout.close();

}

/*

* 读取硬盘上的对象

*/

public static void readObj() throws Exception{

ObjectInputStream oin = new ObjectInputStream(new FileInputStream("person.obj"));

Person p = (Person)oin.readObject();

System.out.println(p);

oin.close();

}

}

class Person implements Serializable{

private static final long serialVersionUID = 42L;//自定义,在修改了成员之后依然”认得“

private String name;

private int age;

public Person(String name,int age) {

this.name = name;

this.age = age;

}

@Override

public String toString() {

return name+":"+ age;

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值