java 基础
来源:互联网 发布:linux cdn 测试 编辑:程序博客网 时间:2024/06/13 20:10
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(Dimension preferredSize)
将组件的首选大小设置为常量值。对 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中的网络编程
- Java基础01:基础
- Java基础:基础加强
- Java基础-基础
- java基础的基础
- JAVA基础---基础常识
- Java基础:基础加强
- [Java 基础]基础语法
- Java基础
- java基础
- java 基础
- java基础
- Java基础
- Java基础
- Java基础
- JAVA基础
- JAVA基础
- JAVA基础
- java基础
- 什么是 C# 分部类(partia)
- smarty初体验
- attachEvent使用简介
- 三张经典图片展示Data Guard主备之间日志传输及恢复
- 网络课的笔记
- java 基础
- linux网络编程笔记1
- 数据流操作(一)
- 基本的几个排序
- new与delete
- 让WinXP登陆界面显示administrator账户的方法
- 数据流操作(二)
- vmware - 调整虚拟机硬盘空间的方法
- (转)gcc 的简单使用说明