1.狭义JavaBean规范 Javabean必须包含一个无参数的public构造方法,方便通过反射的方式产生对象. 属性必须都是私有的. Javabean必须包含符合命名规范的get和set方法,以便访问Javabean的属性. Javabean应该是可序列化(serializable)的. 2.反射 在编译时,并不清楚应该加载哪个类.类的加载是在运行期间进行的.通过反射,可以对类进行加载.探知.自审. 可以通过对象.getClass()或者通过类名.class或者通过Class.forNam…
7.1继承的起源 继承(Inheritance),即在面向对象编程中,可以通过扩展(extends)一个已有的类,并继承该类的属性的行为,来创建一个新的类. 已有的类称为父类(也可以称为基类,超类),而新类称为子类(也可以称为派生类). 继承的优点:代码的可重用性:父类的属性和方法可用于子类:子类可以扩展父类的属性和方法:设计应用程序变得更加简单. 7.2 继承的使用原则 观察要使用的类,确定它们之间共同的和特有的属性和行为,将这些共性数据迁移到父类里,便于子类中进行方法和属性的重用. 对于不同…
OO:面向对象 OOP:面向对象编程 OOA:面向对象分析 OOD:面向对象设计 结构化编程:从顶向下,将一个大问题分解成更小的任务,然后为每一个更小的任务编写一个过程.最后程序员会编写一个主过程来启动程序流程,随后根据程序流程走向,调用想要的其它过程. 对象是存在的具体实体,具有明确定义的特征和行为. 万物皆为对象,对象因我关注而产生. 面向对象:一种认识事物的方式,注重对事物整体的认知,最符合人类自然的思维习惯. 对象是数据封装的结果. 类是具有相同属性和行为的一组对象的集合. 在软件系统中…
5.1 方法调用栈 当一个方法被调用时,将导致控制流程跳转到被调用的方法.然后,控制流程执行方法中的语句.当然,被执行的方法可能会调用其它方法,导致控制流程跳转到其它方法.所有的方法调用都维护在一个称为调用栈的结构中.当前正在执行的方法位于调用栈的顶部,当前方法执行完成后,就从调用栈的顶部移除,控制流程返回栈中的前一个方法.当一个新方法被调用后,这个新的方法就放在调用栈的顶部. 在java程序中,第一个被调用的方法就是main(),该方法是JVM调用的.因此main()方法总是在调用栈的底部.…
1.  集合特点:元素类型不同.集合长度可变.空间不固定 2.  java中对一些数据结构和算法进行了封装即集合.集合也是一种对象,用于存储.检索.操作和传输对象. 3.  JCF(Java Collections Framework)是JavaSE中包含的由一组类和接口组成的Java集合框架,其主要功能是用来将存储的数据以某种结构组织,并以特定的方式来访问这些数据,其目标是提供一个处理对象集合的通用框架,减少程序员处理不同对象集合时的编码量. 4.  集合框架包含三个内容:接口.实现类.算法.…
1.数组概述 数组是存储在一个连续的内存块中的元素集合.数组中的每个元素必须是相同的数据类型,并且通过索引进行区分.数组中的第一个元素的索引为0. 在java中,创建数组有两个步骤: 声明一个对数组的引用: 使用new关键字初始化数组,并指定数组的大小. 对数组的引用可以用中括号.如 int [ ] a=new int[5]; //声明一个长度为5名字为a的数组. 2.数组长度 java中每个数组都有一个length属性的代表数组的长度.如果一个数组a长度为5,则数组a的第一位所以为0,最后一位…
3.1流程控制 三种基本技术可以改变程序的控制流程: ①   调用方法:调用方法将导致控制流程离开当前方法,转移到被调用的方法: ②   选择:java中有两种做出选择的机制:if/else语句和switch语句.三目运算符也可以用于选择,但它通常是if/else的一个简写版本: ③   循环:java中有三种循环语句:for循环.while循环.do/while循环. 3.2布尔逻辑运算 和:符号&,只有在组合表达式的每个部分都为真时,组合表达式才为真: 短路和:符号&&,即如果…
1.  XML:extended Markup Language  可扩展标记语言,利用标签和子标签方式描述数据. 2.  声明<?xml version=”1.0”?>版本号 注释<!--    --> 空元素:<x/>标签之间没有内容 3.  每个XML文档必须有且只有一个根元素:根元素是一个完全包括文档中其它所有元素的元素:所有的元素都必须在根元素中定义. 4.  实体在XML中是存储单元,,一个实体可以包含字符串.文件.数据库记录,以及一些其它数据.预定义的符号…
1.  TCP/IP协议模型 应用层:应用程序: 传输层:将数据套接端口,提供端到端的通信服务: 网络互联层:负责数据包装.寻址和路由,同时还包含网间控制报文协议: 网络接口层:提供TCP/IP协议的数据结构和实际物理硬件之间的接口. 2.  端口: 端口,就是应用程序用于数据交互的通道,用于实现程序间的通信.每个应用程序都有固定的端口.Telnet--23   SMTP—25   FTP—21    HTTP—80 3.  TCP协议: 较可靠的双向流协议: 三次握手: 提供消息确认.错误检测…
1.I/O操作指的是输入和输出流的操作.相对内存而言,当我们从数据源中将数据读取到内存中,就是输入流,也叫读取流.当我们将内存中处理好的数据写入数据源,就是输出流,也叫写入流. 2.流按照内容分类:字节流.字符流.对象流. 其实真正的流只有一种:字节流.数据的传输在底层都是以二进制方式传输,所以无论哪种流,都是字节流.字符流和对象流是在字节流基础上做了一层封装,以方便对字符数据和对象数据进行操作. 3.所有字节流的父类:InputStream和OutputStream. 所有字符流的父类:Rea…
1.异常:描述出错信息的对象. 字节码校验时,如发生错误,则会抛出异常. 2.所有异常的父类是Exception,异常可以捕获,可以处理. 所有错误的父类是Error,错误可以捕获,但不能处理. Throwable是Exception和Error的父类. 3.通过try{}catch(Exception e){e.printStackTrace();}可以捕获异常,其中try表示需要检测的代码块,catch表示捕获,Exception e表示创建变量e,如果try块中抛出了异常,虚拟机就用e变量…
java5以后,新增了显式锁,用于当内置锁不能满足需求后可选择的一种高级方案. lock接口的特点 与内置锁一样,他能提供互斥性,内存可见性,可重入等特征,与内置锁不同的是,Lock提供了一种无条件,可轮询,定时的,可中断的锁获取操作,以及公平队列,非块结构锁,所有的操作都是显式的. lock和内置锁如何选择 因为显式锁提供了如上的特点.也就是说,仅当内置锁无法满足要求的时候,才考虑Lock,内置锁是jvm的属性,能做一些优化???(?未来更有可能优化内置锁,而非显式锁?) Lock的常用实现R…
<Java面向对象编程> 第11章 对象的生命周期 11.1  创建对象的方式 用new语句创建对象 运用反射手段,调用java.lang.Class 或者 java.lang.Constructor 类的newInstance()实例方法. 调用对象的clone()方法. 运用反序列化手段 11.2 构造方法 在多数情况下,初始化对象的最终步骤是去调用这个对象的构造方法.构造方法负责对象的初始化工作,为实例变量赋予合适的初始化值. 构造方法满足的语法规则: 方法名必须与类名相同 public…
一.Java面向对象编程基础 1.什么是对象?Object 什么都是对象! 只要是客观存在的具体事物,都是对象(汽车.小强.事件.任务.按钮.字体) 2.为什么需要面向对象? 面向对象能够像分析现实生活问题的方式,来分析和实现计算机问题. 拉近了现实世界和计算机世界之间的距离. Scanner sc = new Scanner(System.in); sc.next(); sc.nextInt(); 对象有什么特点? 对象可以反复使用的:每个对象功能尽可能单一(各司其职.各尽所能),String…
一:今天完成 上午详细了解了java面向对象编程的一些细节,记录如下. 1)类 是一种引用类型,包含一个签名和一个主体,主体是放在花括号里面的成员,成员包括字段和方法,还有构造方法.初始化程序和嵌套类型. 常用成员有四种:类字段.类方法.实例字段.实力方法. 其它引用类型还包括数组.接口.枚举和注解. 2)字段和方法 示例:一个简单的类和成员 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 public class Circle{…
异常处理概述 检查异常:检查异常通常是用户错误或者不能被程序员所预见的问题.(cheched) 运行时异常:运行时异常是一个程序在运行过程中可能发生的.可以被程序员避免的异常类型.(Unchecked)RentimeExeption 错误:实际上,错误根本不是异常,但却是用户或程序员所无法控制的问题. 异常是程序在执行过程中所产生的问题.JVM发生了内存溢出等... 异常处理:method()方法有三种 1 捕获这个异常,不让他沿着调用栈继续向下抛出 2 捕获这个异常,并继续向下抛出 3 从而导…
经过一周的学习(java),总结了许多,对java的理解,java的类型,运用,安装,基础语法,变量,常量,表达式,语句 java从C语言中继承了大量语言特性.java面向对象编程的基本特征,包括继承.封装.多态的实现.以及类.对象.接口等重要概念. 目前是刚开始,只是对基础了解....... 关键字, 标识符: 标识符不能是关键字或true,flse,null. 标识符可以包含字母.数字(0—9),下划线(_)或美元符号($). 标识符第一个字符必须是一个字母,下划线(_), 区分大小写的,并…
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多线程第三十三章:await与signal/signalAll 下一章 "全栈2019"Java多线程第三十四章:超时自动唤醒被等待的线程 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorh…
一.团队介绍 成员姓名 任务分配 成员课程设计博客链接 兰泽祥(组长) 数据库,斗地主规则的实现,人机自动出牌的算法,实体类的设计 JAVA面向对象编程课程设计--web版斗地主 吴修恩 JSP界面的设计,前后端数据的交互,servlet设计,动态更新界面 Java课程设计---web版斗地主 二.项目GIT地址 fight_against_landlords 三.项目git提交记录截图 四.项目功能架构图.主要功能流程图 五.面向对象设计类图 1.CardGames类图:该类为牌局组类,与2的…
一.团队课程设计博客链接 JAVA面向对象编程课程设计--网络版单机斗地主 二.个人负责模块或任务说明 实体类的设计 斗地主规则的实现 人机自动出牌的算法 实现数据库的DAO模式 三.自己的代码提交记录 注:这里只有部分提交记录,详细的提交记录在团队课程设计博客里有 四.自己负责模块或任务详细说明 1.实体类的设计的代码分析 游戏设计需要用到卡片类(Card)正反面,还有牌型(CardType)的设计,以及各种牌的组合,还要设计在游戏中的抢地主.出牌倒计时.出牌和不出牌等等以及需要判断是否能够出…
由于常常将Java和C++面向对象编程的原则搞乱,所以这次把相关要点分别总结一下,本文主要总结Java面向对象编程. 面向对象编程的三大特性是:继承性(inheritance), 多态性(polymorphism)和封装性(encapsulation). 一. 继承性 [类修饰词列表] class 类名 [extends 父类名] [implements 借口列表名] { 类体 } class Employee { public int workYear; public Employee() {…
Java面向对象编程基础 面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它採用数据抽象与信息隐藏技术,来使软件开发简单化,以达到代码重用的目的. 1.OOP的3个特性(封装.继承和多态性) 封装是类的基础.指把类的相关实现细节隐藏起来,在类中将数据和实现操作的代码集中起来放在对象的内部.调用这些类时仅仅需直接使用类预留的接口就能够了. 继承提供了子类自己主动拥有父类数据结构和方法的机制.它表示类之间的一种关系. 多态指使一个对象被看成还…
哲学中,事物总是螺旋式上升,波浪式前进.因而编程也逐渐向人类更容易理解的方向前进,多年来人们苦苦追求的编程境界 : 高扩展性(extensibility),高复用性(reuseable).java语言的出现是编程思维上的一种转变,从c 语言面向过程的思维模式转变为面向对象的思维模式,这也是它经久不衰的重要原因. 那么如何理解java面向对象编程? 我们以一个实例说明这个构建过程,(熊孩子打酱油) 面向过程思维:开始  --  >拿起瓶子   --->  去酱油铺   -- >  打酱油 …
Java面向对象程序设计第14章3-8和第15章6 3.完成下面方法中的代码,要求建立一个缓冲区,将字节输入流中的内容转为字符串. import java.io.*; public class test { static String loadStream(InputStream in) throws IOException { StringBuffer buffer = new StringBuffer(); int count= 1,i=6; byte[] buf = new byte[co…
Java面向对象程序设计第9章1-9 1. 线程和进程的联系和区别是什么? 联系: 一个进程可以包括多个线程. 区别: 进程: 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,它是系统进行资源分配和调度的一个独立单位. 线程: 线程是进程的一个实体,是CPU调度和分配的基本单位.线程基本不拥有系统资源,与同一个进程的其他线程共享进程中所拥有的所有资源. 2. 什么是前台线程,什么是后台线程? 应用程序必须运行完所有的前台线程才可以退出:而对于后台线程,应用程序则可以不考虑其是否已…
Java面向对象程序设计第8章3-5 3.String类型有什么特点? 一旦赋值,便不能更改其指向的字符对象 如果更改,则会指向一个新的字符对象 不能为null 4.String什么时候进行值比较,什么时候进行引用比较? 值比较: stringA.equals(stringB); 引用比较: stringA==stringB; 5.String与StringBuffer(补充StringBuilder)的区别是什么?如何相互转化? 区别: String内部实现基于常量字符数组,内容不可变: St…
Java面向对象程序设计第7章1-8 1."程序中凡是可能出现异常的地方必须进行捕获或拋出",这句话对吗? 不对. 异常分两类,runtime异常和非runtime异常. runtime异常,比如NullPointException等,这一类你不在程序里面进行try/catch,编译不会出错. 非runtime异常,比如SqlException等或自定义的exception,这一类在程序里不进行try/catch或throws,编译就会出错. 2.自定义一个异常类,并在程序中主动产生这…
为什么要分代 分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的.因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率. 在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象.线程.Socket连接,这类对象跟业务直接挂钩,因此生命周期比较长.但是还有一些对象,主要是程序运行过程中生成的临时变量,这些对象生命周期会比较短,比如:String对象,由于其不变类的特性,系统会产生大量的这些对象,有些对象甚至…
  第一章    初识Java 1.  什么是Java? Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移植的.性能优异的多线程语言.它以其强安全性.平台无关性.硬件结构无关性.语言简洁.面向对象的特点,在网络编程语言中占据了无可比拟的优势,成为实现电子商务系统.企业管理平台.移动设备应用开发等的首选语言. 2.  java的发展 java之父——James Gosling java在1995年5月23日正式发布. ①   1996年1月23i又发布了首个java开发工具包,即J…
9.1多态 在生物学中,是指一个生物或物种可以有多种不同的形式或阶段: 在OOP中,多态是指一个对象有多种形式的能力. 多态可以说是面向对象编程的精髓所在.java中之所以引入多态的概念,原因之一是它在类的继承问题上和C++不同.单继承保证了继承关系的简单明了,但势必在功能上有很大的限制. 由于子类对象中包含一个完整的父类对象,所以父类变量中定义的方法和属性在子类对象中都能找到,所以允许一个父类变量引用子类对象,但反过来却不行,因为子类的方法和属性可能多于父类. 多态调用时,用父类变量指向子类对…