菜鸟 的java学习小结.docx
《菜鸟 的java学习小结.docx》由会员分享,可在线阅读,更多相关《菜鸟 的java学习小结.docx(13页珍藏版)》请在冰豆网上搜索。
菜鸟的java学习小结
Java学习小结
一、7月11日
1.DOS命令
dir指令:
显示文件;
help指令:
显示命令条数;
ipcofig指令:
显示计算机的ip地址等信息。
2.java的理论概括
面向对象:
对现实世界进行抽象概括;
跨平台性:
java虚拟机的不夸平台实现了java语言的跨平台性。
二、7月12日
1.右击sourceGenerateGettersandSetters…
自动生成get和set方法
2.1个字节=8位
char1个字节
int4个字节
3.java的构成
数据类型、变量、运算符、控制流语句
4.基本数据类型:
byte、char、boolean、short、int、long、float、double
引用数据类型:
数组、类(包括基本数据的引用类型)、接口
5.I/O阻塞System.in.read()
第一种用法:
intc=System.in.read();
System.out.println((char)c);
第二种用法:
Scanners=newScanner(System.in);
Stringname=s.nextLine();
intage=s.nextInt();
6.InputStreamReaderbi=newInputStreamReader(System.in);
BufferedReaderbr=newBufferedReader(bi);
Strings=br.readLine();
7.把字符串类型的b转换为整型
inta=Integer.parseInt(b)
8.设置智能提示
WindowPreferences输入“editor”JavaEditorContentAssist
(在写“.”的框里写个特殊字符,以便在导出的文件中便于查找)
导出(FileExportPreferences…)修改(找到带点的地方,输入24个字母的大小写)导入(FileImportPreferences…)
9.导出jar包操作
ExportJavaJar选工程、保存位置选mainclass
创建快捷方式输入“java–jarD:
\ss.jar(路径)”
或者直接导出单独的可运行程序(xx.jar)
10.数据类型转换
自动类型转换的条件:
两种类型兼容、目标类型大于源类型。
11.eclipse使用技巧:
“Ctrl”+“/”多行注释或者取消注释
“Alt”+“/”跳出提示
“Alt”+小键盘ASCⅡ码输入法
syso+“Alt”+“/”输出System.out.println()
main+“Alt”+“/”输出publicstaticvoidmain(String[]args)
三、7月13日
1.编译器代表一个可执行文件,如javac
2.Override重写、覆盖重新定义
Overload重载一个类中存在多个同名方法
3.charc=s.charAt(0);
把字符串s的第0个字符转换为char型,赋给c
4.“ctrl”+“shif”+“F”自动对齐
右击sourceFormat
四、7月14日
1.Listlist=newArrayList();
List.add(“hello”);
代表列表list中元素的类型,此处为字符串
2.abc:
while(){…{…breakabc…}…}
abc表示标号
3.OOP:
面向对象编程
OOA:
面向对象分析
OOD:
面向对象设计
4.消息指一个对象为执行某项特定操作而向另一个对象传递的数据
5.javascript如果要在声明框架的网页(框架网页)中插入,就一定要在
6.for-each循环(用于遍历数组或者列表、集合)
int[]a={3.4.5.2};
for(intk:
a)
{
System.out.println(k);
}
五、7月15日
1.产生一个随机数
Randomrd=newRandom();
rd.nextInt(100);0-100的整型随机数
2.JFrame类
JFramejf=newJFrame();
jf.setVisible(true);设置jf窗体为可见
jf.setLayout(newFlowLayout());设置布局格式
JButtonjb=newJButton()
jb.setText(“ok”);设置按钮的文字
3.File类
Filef=newFile(“D:
\a.txt”);把此文件映射成f对象
f.delete();删除文件
六、7月16日
1.FileOutputStream类用于往文件对象中写东西
FileOutputStreamfos=newFileOutputStream(“D:
/a.txt”);
BufferedWriterbw=newBufferedWriter(newOutputStreamWriter(fos));
2.FileInputStream类用于读取文件
FileInputSreamfis=newFileInputStream(“D:
\\a.txt”);
BufferedReaderbr=newBufferedReader(newInputStreamReader(fis));
Strings;
While((s=br.readLine())!
=null&&s.length()>0)
String[]ss=s.split(“,”);
//以“,”为分隔符,把s中的各部分依次导入到数组ss中
ZhiGongz=newZhiGong(ss[0],Integer.parseInt(ss[1]));
3.String.valueOf(intt)把t转换为字符串类型
七、7月18日
1.右击sourceOverride…
用于重写
2.在生成子类对象时会自动调用父类的默认构造方法;如果父类没有默认的构造方法,则必须在子类的构造方法中显示的调用父类的构造方法。
并且必须写在第一行。
super()或者super(参数列表)。
3.权限修饰符
public:
所有类都可以访问
private:
只有该类可以访问
protected:
该类及其子类、同一包中的类可以访问
默认:
相同数据包中的类可以访问
4.static:
①可以调用其他静态方法
②只能访问静态数据
③不能使用super或者this关键字
final:
①修饰类,不能被继承
②修饰字段,可以被引用,但不能被修改
abstract:
抽象
①抽象类里面可以有抽象方法
②抽象类不可以实例化
③非抽象子类必须实现抽象父类的全部抽象方法
八、7月20日
1.switch-case中case后面不能用变量
2.Thread线程
①使用方法一:
publicclassThread1
publicstaticvoidmain(String[]args)
Runner1r=newRunner1();
Threadt=newThread(r);
t.start();
classRunner1implementsRunnable
publicvoidrun()
for(inti=0;i<30;i++){
System.out.println(“No.”+i);
②使用方法二:
编写一个类继承Thread类,重写Thread类的run方法,然后直接new该类的对象使用。
③使用方法三:
直接在代码里写线程
newThread(newRunnable(){
publicvoidrun(){
//写代码
}).start();
④isAlive():
判断线程是否还“活”着,即线程是否终止
⑤wait():
当前线程进入对象的waitpool;
notify()/notifyAll():
唤醒对象的waitpool中的一个/所有等待线程
⑥线程的优先级用数字表示,范围1-10,值越大优先级越高(但不一定优先级越高,线程就会先执行)
getPriority()/setPriority(iinti)获取/设置线程的优先级
⑦线程串行化
thread.join()要等thread线程执行完才能执行其他线程
join(毫秒),join(毫秒,纳秒)先执行thread指定时间,然后和其他线程并发执行
⑧线程让步:
放弃当前获得的时间片,重新进入就绪状态
thread.yield();
⑨线程挂起:
暂时停止当前运行中的线程,使之转入阻塞状态,并且不会自动恢复运行。
线程恢复:
使得一个已挂起的线程恢复运行。
suspend()挂起;resume()恢复
3.枚举enum
publicenumWeek
MON,TUE,WED,THU,FRI,SAT,SUN
以“Week.***”的格式来使用,Week可以看成一种变量类型。
九、7月21日
1.接口(interface)
①里面一般只有方法,也可以定义静态常量
例如:
publicstaticfinalinti=0;
②只能是public或默认的
2.反射
①第一种情况:
未知类采用默认构造方法
Classcls=Class.forName(getClassName());
Objectobj=cls.newInstance();
Methodm=cls.getMethod(getMethod(),newClass[]{int.class,int.class});
m.invoke(obj,newObject[]{5,7});
privatestaticStringgetClassName()
return"abc.AA";
privatestaticStringgetMethod()
return"add";
②第二种情况:
未知类采用带参数的构造方法
Constructorcr=cls.getConstructor(newClass[]{int.class,String.class});
Objectobj2=cr.newInstance(newObject[]{12,"king"});
Methodm2=cls.getMethod(getMethod(),newClass[]{});
m2.invoke(obj2,null);
3.异常
throws(抛出异常类型)/throw(抛出具体异常);
try,catch,finally
十、7月22日
1.常用类
Math、Class、Object、String/StringBuffer、Date/Calendar/Random
2.集合
(此图引自《javase应用程序设计》视频教程)
1集(Set)
不区分元素的顺序,不允许插入重复的元素
2列表(List)
区分元素的顺序,并且允许插入重复的元素
③映射(Map)
映射中保存成对的“键-值”(key-value)信息,映射中不能包含重复的键,每个键最多只能映射一个值
十一、7月25日
1.进程、线程
1进程就是一个程序,线程就是程序中的代码块。
进程包含线程
2子线程与父线程都是并列执行的
2.synchronized同步线程
1当某个对象用synchronized修饰时,说明该对象在任一时刻只能由一个线程访问
2用于方法说明中,标明整个方法为同步方法
publicsynchronizedvoidpush(){…}
3用于修饰语句块,标明整个语句块为同步块
publiccharpop(){…
synchronized(this<对象>){…}…}
3.使用String类型的getBytes()方法获得Byte数组
十二、7月26日
1.DataInputStream和DataOutputStream
用于读取写入二进制文件
2.字节流8位
字符流16位
十三、7月27日
1.监听器
2.model
3.半相关:
地址、协议、端口号
全相关:
半相关一致(地址可以不同)//两点通信的条件
ServerSocket(服务器端<半相关>)、Socket(客户端/服务器端<全相关>)
十四、7月28日
1.Socket网络编程的步骤
①建立网络连接----获得全相关
②打开连接到Socket的输入/输出流----getInputStream/getOutputStream
3通过已打开的I/O流进行数据的读/写操作
4关闭已打开的I/O流和Socket
十五、7月29日
1.protected不能修饰局部变量
abstract不能修饰属性
2.ImageIO.read();//获取图片文件的一种方法
十六、8月1日
1.单例模式:
确保某个类只有一个对象
1虚拟机上的单例
classA
privatestaticbooleana=false;//用来判断对象是否存在
privateA()//私有化构造函数,使其他类不能new
publicstaticAgetInstance()//获得该类实例的唯一方法
if(a==false)
a=true;
returnnewA();
else
returnnull;
2操作系统上的单例
在计算机上建个文本文件,里面标记该类是否存在实例,关闭实例时要把文件里的标记还原。
十七、8月2日
1.pinstanceofStudent
判断p是否是Student类的实例
2.**.getClass().getResource(“user.dir”);
获取当前路径
3...\..上一层的上一层
十八、8月3日
1.随机读取文件RandomAccessFile
seek(longpos)定位到pos处
2.标准对话框(javax.swing.JoptionPane)
用于实现程序员与用户的便捷交互
姓名:
wdbsking
电话:
1508864759*
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1