Java基础重点整理

合集下载

Java章节重点回顾(第一部分)

Java章节重点回顾(第一部分)

辨别你要用的是哪一个类,系统会默认为裸体类。
Import: 简单方法,直接在需要用到包里面的类时,直接在这个类的首行
把需要引用的类全名写出来。如: import com.bjsxt.java.Cat; 或者:import com.bjsxt.java.*。 包括需要引用的类文件名
(.class)
Байду номын сангаас
类的概念: 类是用于描述同一类型的对象的一个抽象的概念,类中定 义了这一类对象所因具有的静态和动态属性。
属性=成员变量 实例=对象 方法=函数
关联关系:有那么点关联的关系。是最弱的一种关系。 继承关系:**是一种**。 聚合关系(聚集关系、组合关系):一个整体和一个部分的关系。**是 **的一部分。 实现关系:父类与子类之间的关系。
包: 为便于管理大型软件系统中数目众多的类,解决类的命名冲突问 题,而引入的一种机制。提供类的多重类命名空间。
Package 语句作为JAVA源文件的第一条语句, 指明该文件中定义的类 所在的包。(若缺省该语句,则指定为无名包)
格式: packeage pkg1[.pkg2[.pk3....]];
Package: 如果要把一个类放到包里面,第一句话写package,package后面
引用的基本概念:Java语言中除基本类型之外的变量类型都称之为引 用类型。Java中的对象是通过引用对其操作的。
通过引用调这个对象的方法,才能永远有效的对这个对象产生作用。
方法的返回值是存在一个临时的区域里面。 所有的方法来说是针对某一个对象来调用(使用这个对象的引用加上 点)。 弄清楚了内存 = 弄清了一切
This 是对当前对象的引用。 当一个参数你不能确定它指的是哪一个变量的时候,找离它最近的声 明(就近声明原则)。

韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全)

韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全)

java平台1、J2SE java开发平台标准版2、J2EE java开发平台企业版java程序需要在虚拟机上才可以运行,换言之只要有虚拟机的系统都可以运行java程序。

不同系统上要安装对应的虚拟机才可以运行java程序开发步骤1、编写源文件(.java)2、编译源文件为类文件(.class)可用J2SE或J2EE编译3、在虚拟机上运行注释ava文件)2、java编译器即3、java字节码文件(.class文件)4、由解释执行器即将字节码文件加载到java虚拟器(jvm)5、字节码文件(.class)就会在java虚拟机中执行对程序进行改过使之变为一个简单的加法运算程序;.case 常量n:语句n;break;default:语句;break;}*****:switch中的可用数据类型主要是:允许byte,short,int,char,enum等1、单分支控制作业:请大家看个案例[]:编写一个程序,可以输入人的年龄,如果该同学的年龄大于18岁,则输出“你年龄大于18,要为自己的行为负责!”2、双分支控制作业:请大家看个案例[]:编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18岁,要对自己的行为负责!”否则,输出“你的年龄不大这次放过你了”3、多分支控制作业:请大家看个案例[]编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行业负责,送入监狱”。

如果该同志的年龄大于10岁并且小于等于18,则输出“你的年龄也不小了,把你送少管所”。

其它情况,则输出“小孩子,下次注意”。

4、多分支控制作业:请大家看个案例[]请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,ga表示星期一,b表示星期二...根据用户的输入显示相应的信息,要求使用switch语句完成。

5、多分支控制作业:请大家看个案例[]对比switch与if语句在执行分支语句的区别。

Java期末复习

Java期末复习

第一章1.面向过程和面向对象程序设计语言的区别2.编译执行和解释执行语言的区别3.java的各个版本,javase javaee javame4.什么是java虚拟机?工作原理是什么?jdk和jre的区别?5.各个命令的含义:javac.exe java.exe Javadoc.exe jar.exe(考试不要求)6.path和classpath的区别(考试不要求)第二章1.标识符的命名规则2.变量使用三部曲:声明,赋值,使用3.如何定义常量?4.基本数据类型(8种),占用的空间大小,给定一个常数,默认的类型,浮点数的两种表示方法5.基本数据类型的转换,向上和向下6.参数可变的方法定义(考试不要求)第三章类和对象(一)类和对象的基本概念*****1.面向对象语言的基本特点2.什么是类和对象,什么是封装性3.java中所有对象都是引用类型。

(内存分析)4.对象的创建和使用(new,.,)5.JVM内存分配,堆、栈、数据、代码(考试不要求)6.java对象生命周期,什么是gc?工作原理?好处?7.构造函数作用,定义要求。

默认构造方法和对类成员的初始化。

构造和初始化顺序(4步)。

8.对象变量的传递,值传递和引用传递9.什么是方法重载?要求是什么?和方法重写有什么区别?10.this引用的作用11.静态数据成员和静态方法成员。

静态成员和普通成员的互相访问(二)包的概念12.什么是包?如何定义包?命名规则是什么?如何使用包?哪些常用包?哪个包不显式导入就可使用?13.使用jar打包(考试不要求)(三)继承的概念*****14.什么是继承?带来的好处是什么?15.如何实现继承?子类成员和父类成员有哪三种关系?新增,重用,重写16.什么是重写?有哪些语法要求?17.super关键字的作用什么?18.子类的构造函数的执行过程。

能否继承父类?如何显式调用父类构造函数?19.类成员的可访问性。

(4个关键字)20.对象转型,向上,向下,instanceof关键字。

《Java基础知识》Java动态代理(InvocationHandler)详解

《Java基础知识》Java动态代理(InvocationHandler)详解

《Java基础知识》Java动态代理(InvocationHandler)详解1. 什么是动态代理对象的执⾏⽅法,交给代理来负责。

⽐如user.get() ⽅法,是User对象亲⾃去执⾏。

⽽使⽤代理则是由proxy去执⾏get⽅法。

举例:投资商找明星拍⼴告,投资商是通过经纪⼈联系的,经纪⼈可以帮明星接这个⼴告,也可以拒绝。

做不做,怎么做都叫给经纪⼈和投资商谈。

2. 实际场景应⽤2.1 校验⽤户权限,每⼀个菜单请求,都要判断⼀下请求的⽤户是否有该菜单权限。

菜单多了,代码冗余,且容易遗漏。

通过动态代理就可以实现为:每⼀个⽤户,每⼀个菜单的请求,都经过代理(proxy),由他判断是否有权限,调⽤者只需要调⽤,实现⾃⼰的逻辑,不关⼼权限问题。

3. 动态代理完整案例:/*** 创建⽤户接⼝*/public interface UserBean {String getUser();}import erBean;public class UserBeanImpl implements UserBean {private String user = null;//flag:0 ⽆权限,1有权限。

private String flag = null;public String getFlag() {return flag;}public void setFlag(String flag) {this.flag = flag;}public UserBeanImpl(String user,String flag){er = user;this.flag = flag;}public String getUserName(){return user;}public String getUser(){System.out.println("this is getUser() method!");return user;}public void setUser(String user){er = user;System.out.println("this is setUser() method!");}}import ng.reflect.InvocationHandler;import ng.reflect.Method;public class UserBeanProxy implements InvocationHandler {private Object targetObject;public UserBeanProxy(Object targetObject){this.targetObject = targetObject;}@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {UserBeanImpl userBean = (UserBeanImpl) targetObject;String flag = userBean.getFlag();Object result = null;//权限判断if("1".equals(flag) ){result = method.invoke(targetObject, args);}else{System.out.println("sorry , You don't have permission");}return result;}}import erBean;import ng.reflect.Proxy;public class TestSection {public static void main(String[] args) {UserBeanImpl targetObject = new UserBeanImpl("蕾蕾","1");UserBeanProxy proxy = new UserBeanProxy(targetObject);//⽣成代理对象UserBean object = (UserBean) Proxy.newProxyInstance(targetObject.getClass().getClassLoader(), targetObject.getClass().getInterfaces(), proxy);String userName = object.getUser();System.out.println("userName: " + userName);}}运⾏结果:代理代理核⼼代码UserBean object = (UserBean) Proxy.newProxyInstance(targetObject.getClass().getClassLoader(),targetObject.getClass().getInterfaces(), proxy);public interface InvocationHandler {public Object invoke(Object proxy, Method method, Object[] args)throws Throwable;}接⼝:InvocationHandler,代理需要实现该接⼝,并且实现⽅法:invoke。

java复习期末重点考点总结

java复习期末重点考点总结

java复习期末重点考点总结一、基本语法1. 变量和常量定义变量和常量,变量的作用域,变量类型转换等。

2. 数据类型Java的基本数据类型,如整型、浮点型、字符型、布尔型等。

3. 运算符Java的运算符,如算术运算符、关系运算符、逻辑运算符、位运算符等。

4. 控制结构条件语句,如if语句、switch语句。

循环语句,如for循环、while循环、do-while循环。

5. 数组一维数组、多维数组的定义和使用。

6. 方法定义方法,方法的重载、调用以及参数传递。

7. 异常处理Java的异常处理机制,如try-catch-finally语句块。

常见的异常类及其使用。

二、面向对象1. 类和对象类和对象的定义,成员变量和成员方法的访问权限。

2. 构造方法和析构方法构造方法和析构方法的定义和使用。

3. 继承子类和父类的关系,继承的实现和使用。

方法重写和父类引用子类对象的特点。

4. 接口接口的定义和实现,接口的多继承。

多态的概念和实现,向上转型和向下转型。

6. 包包的定义和使用,包的导入和导出。

三、输入输出1. 文件操作文件的读取和写入,字符流和字节流的使用。

2. 序列化和反序列化对象的序列化和反序列化,使用序列化实现对象的存储和传输。

四、集合框架1. 集合接口和类常用集合接口和类的介绍和使用,如List、Set、Map等。

2. 迭代器集合的迭代器,实现对集合元素的遍历和操作。

3. 泛型泛型的概念和使用,泛型类和泛型方法。

4. 排序和比较使用集合框架实现元素的排序和比较。

五、线程1. 线程的创建和启动线程的创建方式,使用Thread类和Runnable接口。

2. 线程同步线程同步的方法,如使用synchronized关键字实现线程同步。

3. 线程通信线程之间的通信方式,如使用wait()、notify()、notifyAll()方法进行线程通信。

线程池的定义和使用,使用线程池实现线程的复用。

六、网络编程1. 套接字套接字的概念和使用,使用套接字实现网络通信。

Java编程知识总结

Java编程知识总结

Java编程知识总结Java是一种面向对象的编程语言,在当今的编程界具有重要的地位。

它具有简单易学、跨平台、丰富的库以及广泛的应用领域等优点,因此备受广大程序员的欢迎。

本文将总结Java编程知识,包含Java的基础知识、高级特性、开发工具和经验分享等方面的内容。

一、Java基础知识Java的基础知识包括语法、数据类型、流程控制、方法、数组等方面。

1.语法Java的语法与C++和C有很多相似之处,但也有许多不同之处。

Java的代码都是以类的形式组织,而在类内则是由方法来组成。

Java的语法比较严谨,对于代码格式有较高的要求。

例如,Java中要求每一个语句以分号结尾。

另外,在Java中,大小写具有区别性。

2.数据类型Java的数据类型与C++和C的数据类型类似,主要包括基本数据类型和引用数据类型。

Java的基本数据类型有byte、short、int、long、float、double、char和boolean等八种,其中char和boolean类型的变量必须进行初始化。

Java的引用数据类型包括数组、类、接口和枚举等。

3.流程控制Java中的流程控制主要有分支结构和循环结构两种。

其中,Java的if、else和switch等分支结构与C++和C的分支结构类似,但Java中的循环结构使用更加灵活,包括for、while、do-while等循环语句。

4.方法Java中的方法是一种封装代码的方式,也是Java中最基本的组织方式。

方法可以接受参数和返回值,可以在其他方法内部或外部被调用。

Java方法的定义形式为“访问修饰符返回值类型方法名(参数类型参数名)”。

5.数组Java中的数组是一种引用数据类型,可以存储多个相同数据类型的值。

Java中的数组可以被初始化并赋予初值,数组的下标从0开始。

Java中使用数组的方式与C++和C的方式类似。

二、Java高级特性Java的高级特性包括多线程、反射、注解和泛型等方面。

JavaPPT全部课件

JavaPPT全部课件

2 public class HelloJava4GUI 句界定符,它控们程制标序级示中别出,类以的便定于义程体序。中语调句用界
定符将一段功能JO代p码tio包n裹Pa起ne来类,中以定突义出的这方段
3{
代码是具有相对法独,立使意用义JO的p语ti句on块Pane类中
定义的各种常量
4 public static void main(String[] args)
93 安全可靠(Secure)
130 动态特性(Dynamic)
立体化教材计算机系列 —《Java程序设计》
7
Java虚拟机
Java虚拟机(Java Virtual Machine) ,缩写为JVM, 是在真实的物理计算机中用软件模拟实现的一种 假想机器,是Java平台独立性的基础。
JVM作为一个基于抽象规格描述的计算机模型,具 有自己完善的硬件架构,有处理器、堆栈、寄存 器等部件,同时还具有相应的指令系统
立体化教材计算机系列 —《Java程序设计》
12
Java应用程序的类型
根据运行界面是以图形化要素为主,还是以 文本字符为主,可将 Java应用程序分为两种 主要类型:
13 GUI应用程序(GUI Application) 23 控制台应用程序(Console Application)
立体化教材计算机系列 —《Java程序设计》
第一章 走马观花看Java
目录
重点与难点点拨 Java的发展历程与特点
Java虚拟机 垃圾回收机制 Java程序的类型 Java程序的结构 Java程序设计原则
经典练习题
立体化教材计算机系列 —《Java程序设计》
2
本章知识重点
13 Java的发展历史

JAVA语言程序设计复习及模拟试卷

JAVA语言程序设计复习及模拟试卷

JAVA语言程序设计复习理论知识重点:1.Java Application和Applet区别知识点:•Java Application是以main()方法作为程序入口,由Java解释器加载执行;•Java Applet没有main()方法作为程序入口,可由浏览器加载执行。

2.Java编译器和解释器知识点:•Java编译器是指“javac.e*e〞,是将.java文件编译成.class字节码文件,Java编译器针对Java虚拟机产生class文件,因此是独立于平台的;•Java解释器是指“java.e*e〞,Java解释器负责将Java虚拟机的代码.class程序在特定的平台上运行。

3.Java的三种核心机制知识点:•Java 虚拟机•垃圾收集机制•代码平安性检测4.类、抽象类、接口、最终类知识点:•类是面向对象技术中一个非常重要的概念。

简单的说,类是同种对象的集合和抽象。

•含有抽象方法的类必须被声明为抽象类,并在类定义关键字class前参加abstract修饰符。

抽象类不能被实例化,一般可通过定义子类进展实例化,即抽象类必须被继承。

•把用于完成特定功能的假设干属性组织成相对独立的属性集合,但凡需要实现这种特定功能的类,都可以继承这个属性集合并在类内使用它,这种属性集合就是接口。

从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。

•最终类是被final修饰的类,最终类不能被继承即不能有子类。

5.类方法、构造方法、抽象方法、最终方法、静态初始化器、终结器知识点:•类方法是由static标记的方法,由整个类(所有实例)共享,如控制权限允许,可不必创立该类对象而直接用类名加‘.’调用。

又称为静态方法。

类方法属于整个类只能处理static 的成员属性。

•构造方法的方法名与类名一样,没有返回值,用于在创立所属类的对象时,由系统自动调用该类的构造方法为新对象初始化。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IEEE 754浮点数标准 同一码字符集 ‘\u0000’ (Unicode
1.5 Java类型系统
• 程序:保留字,标识符(类名、域名、方法名、 符号常量、局部变量,标号、…),操作符、 界定符,字面常量。
• 声明一个变量
• int data=10; Boolean isAlived;
• Java中的操作符:与C基本一致
arrayOfString[i]=new String(“Hello”+i)
1.6 Java中的字符串
• • • • • • • • • 有两个字符串str1,str2 str1=str2; 是指两个引用指向同一个地址 str1.equals(str2) 是指两个字符串内容相等 获取String对象的信息 例如:String s=“this is a string”; int len=s.length(); boolean result=s.equal(“this is a 特test”); char ch=s.charAt(6);
1.8 Java名空间及访问规则
• 变量和方法的修饰字public、protected、private • public: 任何其它类、对象只要可以看到这个 类的话,那么它就可以存取变量的数据,或 使用方法。
class ABC { public int pub_i=5; public void show)() { System.out.println (“pub_i”+pub_i); }
• 什么是封装? • 封装把对象的所有组成部分组合在一起,封 装定义程序如何引用对象的数据,封装实际
公有数据 私有数据 方法 对象B 数据
方法 对象A
上使用方法将类 的数据隐藏起来, 控制用户对类的 修改和访问数据 的程度。
• 什么是子类? • 子类是作为另一个类的扩充或修正所定义的 一个类.
bicycle (super class) sub class
1.8 Java名空间及访问规则
• 不同中的类不能使用
class DEF { public static void main(String args[]) { ABC abc=new ABC(); System.out.println (“abc.pro_i=“+abc.pro_i); abc.pub_i=10; abc.show(); } }
1.8 Java名空间及访问规则
• protected变量和方法 • 如果一个类中变量或方法有修饰字 protected,同一类,同一包可以使用。不 同包的类要使用,必须是该类的子类可以 public class ABC 存取变量或调用 int pro_i=5; { protected
protected void show() { System.out.println (“pro_i=” +pro_i;) } }
Mydate today=new MyDate()
1.5 Java类型系统
• 能够动态取得的内存有两种,一种是对象实体, 一种数组. • Java用new申请内存,不需要自己释放不用的 内存. • 在Java中,定义数组时不必给出数组的大小, 因为Java的数组是动态分配的。 • 数组变量实际上是一个引用变量,因此要实 例化才能使用。 • 例:int Array[]; Array=new int[8];
1.8 Java名空间及访问规则
import mytest.pack.ABC; class DEF extends ABC { public static void main(String agrs[]) { DEF def=new DEF(); System.out.println(def.i); def.i=10; def.show(); } }
• • • • • byte short int long float 0.0f • double 0.0d • char • 8位 16位 32 位 64位 32位 2 的补码 (byte) 0 2 的补码 (short) 0 2 的补码 0 2 的补码 0L IEEE 754浮点数标准
64位 16位
1.8 Java名空间及访问规则
class Demo { public static void main(String args[]) { ABC abc=new ABC();
System.out.println(“abc.pub_i”+abc.pu b_i); abc.pub_i=10; abc.pub_i=5 abc.show(); pub_i=10; }
1.8 Java名空间及访问规则
• 每个类都创造了有自己的名字空间,指方法和 变量可以知道彼此的存在,可以使用。 • abstract类不能直接产生属于这个类的对象
• final类不能被其他任何类所继承(安全的考虑)
• public类不但可以被同一程序包中的其它类使用, 别的程序包中的类也可以使用. • friendly(缺省)类只能被本包中的其它类使用
• 不同包但是是子类
pro_i=5 pro_i=10
1.8 Java名空间及访问规则
• • • • private 不允许任何其他类存取和调用 friendly(前边没有修饰字的情况) 在同一程序包中出现的类才可以直接使用 它的数据和方法.
1.8 Java名空间及访问规则
• 当子类中的变量名与父类的相同,原来的变量 被遮盖. class demo
• (4) 多线程
1.2 Java语言的特点
• Java提供现成的类Thread,只要继承这个类就可以 编写多线程的程序。
• (5) Java与C及C++的区别
• 不再有#include 和#define 等于处理功能
• 不再有structure,union及typedef
• 不再有函数、不再有指针、不再有多重继承

1.23
123,1.23
1.2 Java语言的特点
• Java是什么?
Java= “C++”--“复杂性和奇异性”+“安全性和可移植性”
• • • • •
Java由那些特性? (1) 面向对象 封装性、多态性、继承性、动态链接 (2) 操作平台无关性 严格的语言定义:“没有依据机器的不同而不同” 或“由编译器决定”等字眼,最后的目标码都 是一致的,初值都是确定的
1.5 Java类型系统
1.5 Java类型系统
例: String s1;String s2; s1=“a string”; s2=s1; s1
10001 10001 a string
s2
class Mydate { int year; int month; int day; }
0 today 10008 0 0
1.5 Java类型系统
Java type system
primitive
reference
null
char integral
numeric
boolean class interface array floating-point
byte
short
int
long
float
double
1.5 Java类型系统
1.1 有关面向对象的概念
Mountain bikes
Racing bikes
Tandem bikes
• 什么是继承? • 继承是子类利用父类中定义的方法和变量就 像它们属于子类本身一样.
class Car { int color_number; int door_number; int speed; push_break() { … } add_oil() { … } class Trash_Car extends Car { double amount;
• • • • • • • •
变量:即指对象的所知道的状态 方法:指对象的功能单元。 什么是消息? 软件对象通过相互间传递消息来相互作用和 通信 message 一个消息由三部分组成: 1. 接受消息的对象 2. 要完成方法的名字 对象B 3. 方法需要的参数 对象 A
1.1 有关面向对象的概念
1.1 有关面向对象的概念
{ public static void main(String args[]) { C c=new C(); c.println_out(); }} class A { int data_a=3;} data_a=5 class B extends A { int data_a=5;} A.data_a=3 class C extends B B.data_a=5 { void print_out() { System.out.println(“data_a= ”+data_a); System.out.println(“A.data_a= ”+A.data_a); System.out.println(“B.data_a= ”+B.data_a); }}

1.5 Java类型系统 例:String arrayOfString[]=new String[10];
每个数组元素包含一个对字符串对象的引用, 此时值分配了包含字符串引用的空间,并没 有对字符串本身分配内存,此时不能访问。
arrayOfString[0] 对 arrayOfString[1] 字 符 对数组的引用 arrayOfString[8] 串 arrayOfString[9] 的 引 for(int i=0;i<arrayString.length;i++) 用 arrayOfString
1.7 Java中的类、方t, final或者没有 [类的修饰字] class 类名称 [extends 父类名称] { …. }
相关文档
最新文档