Java总结
一.1.Java程序的执行
Java先由.Java文件编译生成.class文件,再由.class文件通过不同操作系统的虚拟机进行解释从而执行程序结果。
编译命令: javac + 文件名.Java 解释命令:java + 文件名(区分大小写)
2.环境变量的设置
把安装好的jdk的bin文件夹的路径复制到我的电脑中属性的环境变量中。
二.1.面向对象编程的思维
类-->对象-->属性、方法
2.类,方法,属性的创建
创建类即利用关键字class + 类名{}。创建方法要包括此方法的类型(public 默认 protected private),返回值类型,方法名,参数,方法体,其中构造方法是方法名和类名相同的一种方法。
3.对象的创建
创建某个类的对象就是要调用这个类的构造方法(new 构造方法),如果编程没有明确写出某个类的的构造方法,系统则自动提供一个无参的,且方法体为空的构造方法。
4.调用对象的方法或属性
对象名.方法 对象名.属性
三.1.java标识符命名
首字母必须是字母,_或$符号,其他字符可以是字母,数字,_或者$。
2.数据类型
简单数据类型:
布尔boolean:1位,取值为true,false
字符char:2字节,单引号’ ’括起来的单个字符
数值:整数:byte 1字节
short 2字节
int 4字节
long 8字节
浮点数:float 4字节,数字后面需加f
double 8字节
复核数据类型:类class,接口interface,数组[]
3.包
包的命名 package 域名.系统名.模块名.其他名
包的导入 import java.util.*;
四.1.变量
全局变量 在类中定义在整个类中都可以使用
局部变量 在方法内部定义、方法的形参、游离块内部定义
五.1.运算符
算术运算符:+ - * / % ++ --
关系运算符:> < >= <= == !=
逻辑运算符:! && || ^
位运算符:& | >> << ^(按位亦或) ~(取反)
赋值运算符:=
字符串连接:+
2.短路逻辑运算符:由一个操作数能判断出结果则不再判断第二个操作数
3.数据类型转换
byte->short char->int->long float->double int->float long->double
强制类型转换 类型 变量名 = (类型) 值;
4.三目运算符 x ? y : z 判断表达式x的值,若true则整个表达式的值为y,反之为z
5.程序结构
顺序结构、选择结构、循环结构
6.分支语句
If else语句:if( ){ }else{ }
Switch语句:switch( ){case’A’:…break;case2:…break;…;default:…break;}
7.循环语句
do{循环体}while(条件) while(条件){循环体} for( ; ; ){循环体}
8.break语句跳出整个循环 continue语句结束本轮循环
六.数组
1.数组声明
类型[] 数组名; 或 类型 数组名[];
2.数组创建
数组名 = new 类型[n];
3.声明同时创建
类型[] 数组名= new 类型[n]; eg: int[] a= new int[10];
4.数组赋初值
在声明的同时赋值 eg:int a[]={1,2,3};
在声明之后赋值,只能使用循环一个一个赋值
5.数组引用从0开始计数,长度可以通过 数组属性length获得(数组名.length)
6.排序
冒泡排序:循环遍历数组,一次比较两个元素,如果他们的顺序错误就把他们交换过来,直到无需交换完成排序。
int[] a;
int temp = 0;
for (int i = a.length - 1; i > 0; --i) {
for (int j = 0; j < i; ++j) {
if (a[j + 1] < a[j]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
直接调用数组静态方法sort eg:Arrays.sort(a);
7.数组的复制,调用System.arraycopy()
System.arraycopy(a, 0, b, 0, a.length);从a中0开始复制到b中0开始,长度为a的长度
8.多维数组
int[][] a;
int[][] a= new int[n][];
七.1.类的继承(仅单继承)
class B extends A{} 其中父类的属性,一般方法,内部内都要被继承,构造方法不能继承。
2.方法重载
方法名相同,参数列表必须不同。
3.方法重写
在类继承的基础上方法名,参数列表,返回值类型都相同,修饰符更加宽松,构造方法不能重写
4.调用父类方法或属性super.方法,super.属性,调用本类中其他方法或属性this.方法,this.属性
八.1.==与equals();
==判断是否指向同一对象,equals();判断内容是否相同
2.static可以就是属性,一般方法,游离块,内部类,不能修饰构造方法
3.静态属性被该类的所有对象共享,用 类名.静态属性 类名.静态方法 进行调用。静态方法中不能使用非静态属性和方法。
4.单子设计模式
5.final修饰类,方法,属性
final类不能被继承,final变量初始化后不可改变,final方法不能重写
6.抽象abstract类无法实例化,abstract方法无方法体
7.接口interface,实现接口 : class 类名 implements 接口名{}
8.多态 eg:父类 对象名 = new 子类();发生的情况:1)继承;2)接口的实现。
九.1.异常处理的格式
try{可能出现异常的代码段}
catch(MyException mye){mye异常抛出时执行的代码段 }
catch(Exception e){e.printStackTrace();}
finally{必定要执行的语句}
2.throws在方法头,用于标明该方法可能抛出的所有异常。
3.throw在方法体中,用来抛出一个异常,结合try—catch语句使用。
4.自定义异常
通过继承Exception类实现自定义
先继承Exception类自定义异常,再执行程序中try抛出此异常,catch捕获处理 十.1.String类(String不可变)
相关的方法charAt,toCharArray,length,indexOf,trim,substring,toUpperCase,startWith,equals,equalsIgnoreCase, replaceAll,split
2.StringBuffer:同步的(线程安全)可变字符串;StringBuilder非同步的(线程不安全)可变字符串。常用方法append,reverse,replace,toString
3.日期类
Calendar cal = new GregorianCalendar();
int year=cal.get(Calendar.YEAR);
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
4.Math类
常用方法round,random(随机生成大于等于0,小于1的数字)
5.Random类nextInt(n)方法,随机生成0到n的整数
6.TimerTask类,其中的run()方法写出要执行的代码,在实例化Timer和TimerTask,用Timer对象的schedule方法执行TimerTask的对象。
十一.1.List集合,可重复有序集合
List<泛型> 集合名 = new ArrayList<泛型>();
构造时用到了多态,用ArrayList类实现了List接口。
常用方法add,size,clear等,循环遍历
2.Set集合,不可重复无序集合
Set<泛型> = new HashSet<泛型>();
构造时用HashSet类实现了Set接口。
常用方法add,clear,size等,循环遍历
Set可以过滤重复元素
3.使用Set过滤List中的重复元素,在构造Set对象时把List对象当作参数传入
4.Map集合key---values,key不可重复
Map<String,String>map = new Hashtable<String,String>();
构造是用Hashtable类实现了Map接口。
常用方法put,get,keyset,values,size,循环遍历
5.HashMap异步处理,性能高,非线程安全
Hashtable同步处理,性能低,线程安全
十二.1.File类
File f = new File(“文件地址”);
常用方法createNewFile,exists,delete,mkdir(创建文件夹),listFiles(列出文件夹内容)
2.字符流
InputStream input = new FileInputStream(f);
OutputStream output new FileOutputStream(f,true);
用FileInputStream(FileOutputStream)类实例化抽象类InputStream(OutputStream)类,将File对象f当作参数传入为操作对象。
输出方法byte b[] = new byte[1024];input.read(b);input.close(b);
输入方法byte b[] = str.getBytes();out.write(b);out.close();
3.字节流
Reader input = new FileReader(f);
Writer output = new FileWriter(f);
用FileReader(FileWriter)类实例化抽象类Reader(Writer)类,将File对象f当作参数传入为操作对象。
输出read()方法,输入write()方法
4.打印流
PrintStream ps = new PrintStream(new FileOutputStream(new File("地址")));
输入方法println(“str”);
5.BufferedReader
buf = new BufferedReader(new FileReader(new File("地址")));
输出方法readLine();
以上方式均用try—catch包围,并且使用完要关闭流
十三.1.通过继承Thread类构造线程,其中要重写run()方法,若要间隔调用可使用Thread
的静态方法sleep();调用线程时先实例化自定义的类,再调用此对象的start()方法
2.通过构造类实现Runnable接口,其中重写run()方法,若要间隔调用可使用Thread的
静态方法sleep();调用线程时,先实例化上述Runnable生成的类,再实例化Thread类,并把Runnable对象当作参数传入,start()方法执行线程。
3.互斥锁,通过synchronized (this)包围目标代码或synchronized void 方法名(){},实现线
程间的互斥操作。
十四.1.容器JFrame
2.组件JButten,JLabel,JTextField,JPanel,JTextArea
3.常用方法add,setVisible,setLocation,pack
4.布局管理
5.事件处理
建立按钮和事件处理者的关系;注册监听;通过实现ActionListener接口构造内部类:委托
式事件处理。
第二篇:java总结
个人介绍:
1. 名字可以不用介绍;
2. ×××大学,学了什么(大致介绍)
3. 如何进入第一家公司;
4. 工作年限;
5. 大致讲下在公司所作的项目;
技术方面:
1. 抽象类与接口的区别;
2. 版本控制(CVS,VSS)
3. 常用的struts中标签库的标签;
5. 软件工程流程(如处理一个bug的流程);
6. API中常用的接口及作用;
7. Hibernate的优点及缺点;
8. MVC的概念;
9. AJAX,如何实现;作用及优点;
10. DIV与SPAN的区别;
项目方面:
1. 项目名称;
2. 参与人数,开发时间;
3. 大致介绍下项目整体模块及功能;
4. 重点;自身在这个项目中负责什么模块,通过哪些技术去如何实现;
5. 项目开发结束自身的感触;
其它方面:
1. 工资(回答须准确合理)
2. 介绍个人的特长;主要针对你在这个行业的优点;但是可以补充你的爱好等;
3. 介绍自己以前的公司
4. 上家公司离职的原因;
反问:
1. 福利待遇;
2. 加班情况;
3. 公司规模及主要开发对象;
4. 公司在开发项目用到哪些框架及技术;