java 基础

Hardware硬件 input output cpu memory内存

software软件 application(app) os

wetware湿件 pesson

platform(平台) intrel

IDE

深入虚拟机

param 参数

field字段

constructor构造器 (无构造参数)

method方法(有方法参数)

注释

1、创建公司时间作者/* */

2、此类代表,注意条件/** */

版本 @version 1.0

创建时间 @since 2011.06.22

看 see (F2快捷键查看)

@deprecated 过期标志(有删除线),在在下一个方法参数中放弃,尽量不要用

3、 F3 可以查看源文件的代码。F2提取注释信息。

4、 Ctrl+Shift+J

下午

1、代码规范问题

1、一句代码占一行。

2、可以多行,不要过宽。 一項內容空一行。

2、$ _ 字母 数字 美元符号 下划线。

3、类的名子首字母大写,方法的命名,

4、关键字

byte(-128-127)(8位) short(16位) int(32位) long(64位)(long a=23345f)

进制问题 0Xff(16) 023(8)

浮點类型 float(单精度)float f=1.23f double f=3.43(双精度)

boolean(8) 表示 true or false

char(16) 表示字節 任意字符 转义字符 char h='\n'; '\r'; '\,'; '\\'; '\U00ab';

String == 比较的值是否一样,true和false 两个new时比较是false,否则

5、內存

堆(heap)其他数据放堆里使用。

栈(stack)局部变量

6、this

局部变量 在static中不可用

不同的调用方法

7、String比较重要的基本类型

创建 可以使空字符串,索引从零开始的,

返回结果是负数时表示没有查到

s.indexOf('a')即字符a的位置 s.lastIndexOf('a'),从右边向左找

s.indexOf('a',3)从3位置开始找 s.indexOf('a',3)从3位置自右向左开始找

s.indexOf("abdf")字符串abdf的位置,

s.chArt(4);

s.subString(3)从3开始的以后所有

s.subString(3,5)从3开始5结束的字符串

replace

1、直接替换

s.replace('ab','sy') s.trim() 去除两端空格

s.toUpperCase() 字符串全部转换成大写

s.toLowerCase() 字符串全部转换成小写

作业

根据身份证号码 打印出出生年月日。

1、局部变量申明后不能直接用,得设置值后,即赋值后

使用时有read和write操作之分。 a+=1包括(read write)

2、类里的字段初始值 数字表示0 boolean 表示fals char表示 \u0000显示方块 String 为null

3、运算符

数学运算

逻辑运算 短路操作 && 注意前面的为false时 后面的不用计算了无影响直接跳过

|| 前面的为true时 后面的不用计算了无影响直接跳过

int a=1; int b=++a; int c=a++; 此时a=3;b=2;c=2;

+ 连接字符串的作用 "abc+1+2" 连接后为 "abc15" String a=" "+3.14 对象也可转化成字符串

尽量少用连加操作 String s="S"+1+2+2+2+3+32;

StringBuffer stringbuffer=new StringBuffer();

stringbuffer.append("S");

stringbuffer.append(1);

stringbuffer.append(2);

stringbuffer.append(2);

stringbuffer.append(32);

位运算

+ 二元 !一元 (4>5) ? 8:9三元true时为前面一个

4、数值转换

强制类型转换 浮点数 长整型

char 和 short 转换 char b='a' ; 把a转换 b

5/3=1 5%3=2 除法时有一个为float时为小数 除数为零时违法计算

浮点数 两个浮点数相除时会出现无穷大infinity 0/0时为 NaN (not a number)

取余运算 -5%3=-2 5%-3=2 -5%-3=-2 结果只看分子的正负号。

5、控制语句

if else switch case (default)

do while 循环 for循环

循环嵌套 最多三层if时contine 结束后面所在的循环的代码不再执行了。90次

break 时整个循环跳出循环 91次

标签循环

作业

查找在一个字符串中出现指定字符串的个数

6、调试代码 debug

int a=10; int b=2; int c=(b=15)-a; 输出为:5

7、数组

1、基本类型的数组

申明 int[] a;正确的使用 int a[];不推荐使用 int[] a; a=new int[10];

初始化时必须给定长度 输出时a[4]; int[] a; a=new int[]{1,2,3,4,5,6,7,8}; 最后一个逗号不起作用

建议使用后者 int a=new int []{1,2,3,4,5,6,7,8} int a={1,2,3,4,5,6,7,8}

2、引用类型的数组

Dog[] d=new Dog[2]; d[0]=new Dog(); d[0].length=3; System.out.println(d[0].length);

3、多维数组

int[][] d; d=new int[2][3];

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

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

这样也可以的 int[][]d; d=new int[2][];

8、增强型循环

便利操作 for(int i=0;i<a.length;i++){System.out.println(a[i])} 不能保证重复的数据会跳过遍历,可读,可修改a[i]=1;

for(int i:a){ System.out.println(i)}; 使用遍历a中的数据 只能读,不能修改。

9、数组大小的调整

int []a={1,2,3,4,5}; a[3]=2; 要求必须连在一起个数确定不能再修改了,

System.arraycopy(a,0,b,0,a.length); 复制数组效率比较高

Arrarys.toString(a) 输出数组中的值

Arrarys.sort(a); 从小到大排序

作业

利用二维数组 ,显示乘法列表

1、面向对象编程 代码重用

封装 信息隐藏 对象里德字段尽量不要公开 private只有自身可以使用 setter getter

继承 少写代码的量 修改量变小了 泛化 祖先关系 继承树的关系

抽象

多态

boolean set get is

选中类名 F4可以查看继承关系 Ctr+T 再按下 关系倒置可以看到接口

default protected

相同包 有父子关系 Y Y

相同包 没有父子关系 Y Y

不同包 有父子关系 N Y

不同包 没有父子关系 N N

相同类 相同包 父子 所有

private Y

default Y Y

protected Y Y Y

public Y Y Y Y

super调用的是父类的方法 super.getName()。

多态特性; 相同的代码可能执行的不同,有对象的实例决定的 比较重要的方法

扩展开放 修改关闭

异类数组 Employ[] e=new Employ[2] a[0]=new Employ(); a[1]=new manger();

instanceof 检查类型是否相同 (e instanceof employee) 返回true和false

if(e instanceof Manager)

{

Manager m=(Manager) e;

m.foo();

}

方法的重载传参 个数可以改变的 参数是数组时可以用 public void manager(int s,int ... a){ }

作业

写一个Account类 ,记录账号金额,一个in方法,一个out方法,一个初始值方法,

out方法记录转出时账上的金额是否足够,用Account类表示四个账户 a b c d;

各自的初始值为 a:2000,b:1000,c:1500,d:200

a->b,200

b->c,500

c->d,1000

d把一半的钱转给b

a->c,2000

1、最后输出各自账户的余额

2、c和d的账号允许进行透支,重复上面的过程。

1、构造器 一个类必须对应一个构造器,调用构造器是调用对应的参数。

缺省构造器,没有事编译器会自动添加一个无参数构造器,空的无参函数。保证一个类必须对应一个构造器

一旦有一个构造器的时候在调用缺省构造器必须自己添加。

不能互相调用 子类必须调用父类的构造器、

surper this 必须是二者选一个都没有时,都没有时调用父类的构造器,只有this时调用自己的构造器

调用的时候从下面往上面调用,执行的时候从上往下。

调用的时候会覆盖父类的方法 对象内部的静态方法

2、Object类

hashCode public native int hashcode();

equals == 常量 equals 内部是否相同

clone 深 浅 之分

toString

3、wrapper 包装器八个 Byte Short int(Integer) long Float Double Boolean char(Character)

isWhitespace islettle

4、static

静态变量,静态方法。可以被继承,不是覆盖方法就不存在这种说话发

5、finally 类名前前 不能被别的东西继承

变量前面 字段,局部变量 不能被修改,如果先前没有赋值,则可以被赋值。

方法前面 可以禁止子类的覆盖,只能用子类的方法

private finally static int a=2; 常量(字母全部得大写)Ctr+shift+x Ctr+shift+y 状态可以改变的

作业:1、写一个Employee类,代表员工且每个人有一个编号,编号不能重复

写一个Manager类,manager要有管理的部门,

输出这两种对象的时候采用两种不同的结果,员工输出字符串显示 emp:编号 Manager经理显示 部门名称+编号

员工有年龄和名字,对应的setter和getter 方法,不能被子类修改

2、写一个工具方法,把一个任意数组中的成员顺序倒转

1、枚举类型 enum

2、扑克牌案例 利用 enum的类型举例。

关于牌的问题是可以这样是考试的

1、在54张牌中如何设计一个好玩的游戏

作业,一副牌52张,洗牌之后二人每个人抽两张,比较大小,

1、抽象方法抽象方法存在抽象类中

把继承的所有方法实现实现出来,

2、接口

implements 多继承的方法 面向接口编程 XXX能怎么样 扩展开放,修改封闭

匿名内部内

1、异常处理

可查异常,运行前可以检查到的,除不可查异常外,其余均为可查的异常。

不可查异常,运行的时候检查出来的异常 runtimeException

栈的追踪 栈下面的顺序倒着排列的,与上面的顺序相反,

throw e 直接抛出异常。不再处理了

finally 作为try后面的代码块一定会被执行,不管有没有异常,有没有catch块,捕获还是没有捕获均被执行

try里面有return也会被执行的,无论try里面的带码块是什么均被执行

不要刻意用此方法来控制程序,用正常的for if来判断操作程序的进程

也可以自己根据需要自己抛出异常,if(s==null){IOException e=new IOException; throws e}

assert 断言

命令

系统信息user.home,用户地址

System.setErr(null);

作业;

写一个四则运算的程序,从控制台输入,要运算的表达式,计算结果,输出到控制台页面。

集合框架

Boolean add(object a ) 加一个对象

Boolean remove(object a ) 移除一个对象

Int size ()

Boolean contains(object

Void clear

Iterator

Object[] toArray()

Object get (int index)

Java gui编程

Awt abstract window toolkit

Swt (开发myeclice….

Swing 优先考虑的是会在是

Swing的靠frame,

Window fram Dialog

Component

Awt swing

Container

add()

setLayout();

invalidate();用在主动激活控件

jcomponent

setLocation();组建的安定位置的

setsize(width,higth);

setBOUNTS();

SETbounts (Rectangle)

Getsize();换回的是组建的实际是大小、

setPreferredSize

public void setPreferredSize(DimensionpreferredSize)

将组件的首选大小设置为常量值。对 getPreferredSize 的后续调用总是返回此值。将首选大小设置为 null 可还原默认的行为。

参数:

Pack();

Java中的事件监听器

boolean b = SwingUtilities.isLeftMouseButton(e);

// if( e.getModifiers() &e.CTRL_DOWN_MASK>0

System.out.println("MOuse clicked");

}

public void keyTyped(KeyEvent e)

{

// char c = e.getKeyChar();

// System.out.println(c);

// e.getKeyCode()

//e.getKeyCode()

e.consume();//zujianbei

键盘事件以及鼠标事件

键盘事件的

小例子

Paper 类监听自身的鼠标事件,在鼠标左键点击的位置画一条线连到一起
diapose.exit.close优先考虑

写一个窗体,有一个状态栏,窗体的中间放一个按钮,当窗体大小改变时,把窗体的大小宣示在状态栏里,

鼠标在窗体上移动时,把鼠标上的屏幕坐标显示在状态栏

Java 写一个记事本程序,有菜单,文件菜单,格式菜单,

文件菜单有打开,退出,保存,另存

格式菜单有自动换行切换

component 是一个具有图形表示能力的对象,可在屏幕上显示,并可与用户进行交互。典型图形用户界面中的按钮、复选框和滚动条都是组件示例。

ImageIcon icon;

//Toolkit toolkit = Toolkit.getDefaultToolkit();

// Image image = toolkit.getImage("c:/windows/web/tips.gif");

//

// g.drawImage(image, 50, 50, 100, 100, this);

// g.drawIma

ImageIo

BufferedImage getGri();

处理图片的方法

边框的效果

label.setBorder(BorderFactory.createBevelBorder(type, highlightOuter, highlightInner, shadowOuter, shadowInner))

工厂模式

用标签Label模拟一个浮动按钮,点击输出一段文字

动画效果

画图

定时器

Timer

Java .uti(比较精确

Javax.swing

Java中 的多线程问题的处理方法的是

实现runnerber的接口的方法

//比较;灵活,有独立的咱,共用一个堆

手动线程

Thread main = Thread.currentThread();

// main.setDaemon(true);

// t1.yield(); 协作

//t1.join(); 合并

不常用

常用的有:

Thread.currentThread();

Sleep();

作业“

用一个 线程,从0数到99,间隔一秒

验证间隔是不是一秒

加大线程的个数在测试一次

用定时器在测试一下

System.currentTimeMillis();

// 线程同步,常用this来处理

将value该为this

synchronized (value)

{

value[index] = name + i;

index++;

}

在集合类中

Vector中的方法也是用synchronized


Java 的io输入字节(byte) inputstream(read(),market

输入字符(char) reader 都是抽象类要用子类

FileInputstream

节点流(new 的对象可以直接用,个数有限,与文件相关的都是,与类存相关的(6)byteArrayInputStream ,charArrayReader,StringReader),处理流(从别处别到的,不能直接被使用)

管道流(pipedInputStream PipedReader 在线程之间传递数据

缓冲作用


防止难吗问题

inputStreamReader ();

outputStreamWrite ();

对象的序列化

ObjectInputStream

对象的结够是一样的

Serializable

打印流

Printwriter

printStream(system.out.();

随即

RandomAccessFile raf = new RandomAccessFile("c:/Test.java", "rw");

//raf.writeBytes(s)

写一个程序,可以将一个文件夹复制到其他位置,保持内部结构,复制完成后,显示复制总文件个数和字节个数

Java中的网络编程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值