马士兵java基础笔记 pdf版 面向对象部分

合集下载

马士兵基础第三章面向对象java—j2se

马士兵基础第三章面向对象java—j2se

9.Object根基类 所有类的根基类
toString方法:
hashcode:
equals方法: 和空值比较返回false
比较两个引用是不是指向同一个 对象
String 和 Date 对equals的重写
10.对象转型:casting
一个基类的引用 可以指向其子类对象
方法是public abstract方法 (默认)
接口之间相互继承
不要实现具有同名方法的接口
方法名一样 参数一样 而返回值不一样 则重名
重载方法:可以根据参数找到对应的方法
应用:构造方法的重载
4.对象的创建与使用 : 使用new关键字创建对象
对象引用。成员变量 来调用对象的成员变量
对象引用。方法 来调用对象的方法
同一类每一个对象 有不同的成员变量存储空间
同一类每一个对象 共享该类的方法
非静态方法针对每一个对象进行调用
5.关键字this
当前对象的引用
处理成员变量和参数重名的情况 Nhomakorabea6.关键字static 单例模式
静态成员变量:
第一次使用时 被初始化
公用的
可以计数用
静态方法:
1.类 对象
类是对象的模版 对象是类的具体事例
类之间的关系 :
关联关系:如方法里面有个参数 是另外一个类的对象
继承关系:**是一种**
聚合关系:
聚集:松散
组合:紧密
实现关系:接口
多态:
面向对象的思想:1)确定一个问题里的类和对象
2)确定类和对象的属性和方法
3)考虑类和类之间的关系

Java学习笔记_马士兵老师视频教学的笔记

Java学习笔记_马士兵老师视频教学的笔记

Java学习笔记学习Java首先要配置环境变量,在电脑属性的高级中,点击环境变量,classpath 中有一英文句号“.”后跟一个分号,表示当前路径的意思。

由第一个程序Helloworld为例说明Java的基本运行代码:public class HelloWorld {public static void main(String args[]) {System.out.println("Hello, World!");}}在Java中只能允许有一个公共类,此区别于C++。

还有Java的写作风格与C和C++有很大区别。

下面细谈Java的基本语法,与其他语言类似,Java每一条语句都以“;”结束。

1.short byte char 之间不会自动转换,他们运算时首先转换为int 然后进行运算;boolean不会进行转换;如:byte b1;byte b2;byte b3=byte(b1+b2);b1+b2运算后是int 类型,可以byte a=1;//可以把数值直接赋值不超范围,(-128~127)float f1=1.234f;long l1=300000000L;f和L一定加上;2.System.out.println( );//输出后换行System.out.print( );//输出后不换行&&和&的区别:表达式1 && 表达式2 只要表达式1 错误,后不再计算,表达式1 & 表达式2 就算表达式1错误表达式2也会计算。

+既可以作为加号,也可以作为连接符,即左右都是字符串,当有一个是字符串,系统默认把另一个转化为字符串再处理。

例如:System.out.println(“c=”+ c);打印时,无论任何类型,都先转换为字符型,再进行打印。

3.聚合关系,就是包含关系,实现关系就像虚基类,在派生类中实现。

4.定义成员变量可以初始化,若不则自动初始化(可以直接在成员变量的定义时初始化);但局部变量一定要自己初始化,boolean类型默认为false,其他默认为0;在main中调用函数时,只要定义了构造函数并且初始化,就一定要把实参的值写到函数里,不能少参数。

马士兵

马士兵

第一部分:J2se学习视频内容包括:尚学堂科技_马士兵_JA V A视频教程_JDK5.0_下载-安装-配置尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第01章_JA V A简介_源代码_及重要说明尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第02章_递归补充尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第02章_基础语法尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第03章_面向对象尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第04章_异常处理尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第05章_数组尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第06章_常用类尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第07章_容器尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第08章_IO尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第09章_线程尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第10章_网络尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第11章_GUI尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_专题_日期处理尚学堂科技_马士兵_JA V A视频教程_J2SE_专题_正则表达式反射avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第二部分:j2se练习项目视频内容包括:尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse尚学堂科技_马士兵_坦克大战视频教程_java_eclipse尚学堂科技_马士兵_坦克大战图片版尚学堂科技_马士兵_JA V A_坦克大战网络版视频教程尚学堂科技_马士兵_snake_贪吃蛇内部视频◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第三部分数据库视频Oracle视频内容包括:01——53讲avi格式◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第四部分:JDBC和MySQL视频,内容包括:1_lomboz_eclipse_jdbc2_mysql_avi3_连接池的设计思路.avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第五部分:HTML & CSS & JA V ASCRIPT 视频:Html & CSS 视频内容简介:01_html简单介绍和meta标签.avi02_a_路径问题等等.avi03_学习方法_其他常用标签.avi04_1_note.avi04_表格和表单_1.avi05_表格和表单_2.avi06_Frame.avi07_Dreamweaver.avi08_CSS_1.avi09_CSS_2_选择方式.avi10_CSS_3.avi11_CSS_4.aviJavaScript 视频简介:01_JS初步及调试.avi02_JS基本语法.avi03_函数_事件处理_1.avi04_事件处理_2.avi05_内置对象_DOM_BOM.avi06_趣味.avi07_实用.avi08_表单验证.avi09_表单验证_new.avi10_后台框架.avi11_后台框架_2.avi12_TREE.avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第六部分:Servlet & JSP视频——内容包括:1 tomcat的安装使用,配置2 servlet & jsp 视频1——30节jsp的练习项目内容包括:3 简单bbs项目3 2007美化BBS项目4 网上商城项目视频4 网上商城项目视频讲解视频◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第七部分:J2EE学习视频包括:DRP项目框架视频学习:Struts视频Hibernate视频Spring视频提高部分:uml统一建模语言视频SSH项目视频:oa办公自动化系统视频crm项目视频银行系统视频ejb3.0视频J2ME_3G简介资料面试材料:面试题大汇总+笔记+技巧尚学堂视频学习顺序(必看)尚学堂视频学习顺序2009-04-22 21:19尚学堂科技_马士兵_JDK5.0下载-安装-配置尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第1章_JA V A简介_源代码_及重要说明尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第2章_基础语法尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第2章_递归补充尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第3章_面向对象尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第4章_异常处理尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第5章_数组尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第5章_数组尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第6章_常用类尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第7章_容器尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第8章_IO尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第9章_线程尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第10章_网络尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第11章_GUI尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse尚学堂科技_马士兵_坦克大战视频教程_java_eclipse尚学堂科技_马士兵_坦克大战图片版尚学堂科技_马士兵_坦克大战网络版视频教程尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_专题_日期处理尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_专题_正则表达式尚学堂科技_张志宇_SERVLET_JSP_视频教程_第一版尚学堂科技_马士兵_JDBC_MYSQL_BBS项目课堂实录视频教程尚学堂科技_马士兵_BBS_项目补充_MySQL简明视频教程尚学堂科技_马士兵_JA V A_系列视频教程_BBS_2007尚学堂科技_马士兵_JA V A_网上商城项目视频讲解尚学堂科技_马士兵_轻松愉快LINUX视频教程尚学堂科技_马士兵_设计模式_01_Observer尚学堂科技_王勇_JA V A视频教程_XML01_XML尚学堂科技_王勇_JA V A视频教程_XML02_XSL尚学堂科技_王勇_JA V A视频教程_XML03_DTD_Schema尚学堂科技_王勇_JA V A视频教程_XML04_JDOM对XML文件的读取尚学堂科技_王勇_JA V A视频教程_Struts01_源代码及重要说明尚学堂科技_王勇_JA V A视频教程_Struts02_多层架构及MVC尚学堂科技_王勇_JA V A视频教程_Struts03_第一个项目尚学堂科技_王勇_JA V A视频教程_Struts04_小结及作业尚学堂科技_王勇_JA V A视频教程_Struts05_Struts标签库尚学堂科技_王勇_JA V A视频教程_Struts06_JSTL_EL表达式尚学堂科技_王勇_JA V A视频教程_Struts07_JSTL_核心库尚学堂科技_王勇_JA V A视频教程_Struts08_JSTL_格式化库及函数库尚学堂科技_王勇_JA V A视频教程_Struts09_Struts标签库实现用户维护作业尚学堂科技_王勇_JA V A视频教程_Struts10_ActionForm尚学堂科技_王勇_JA V A视频教程_Struts11_ActionForward_ActionMapping_Action尚学堂科技_王勇_JA V A视频教程_Struts12_Java国际化尚学堂科技_王勇_JA V A视频教程_Struts13_Struts及JSTL国际化尚学堂科技_王勇_JA V A视频教程_Struts14_动态验证框架尚学堂科技_王勇_JA V A视频教程_Struts15_声明式异常及个性化异常尚学堂科技_王勇_JA V A视频教程_Struts16_ForwardAction_DispatchAction_Struts模式匹配尚学堂科技_王勇_JA V A视频教程_Struts17_JSTL实现物料维护作业尚学堂科技_王勇_JA V A视频教程_Struts18_Struts回顾尚学堂科技_王勇_JA V A视频教程_Hibernate01_源代码及重要说明尚学堂科技_王勇_JA V A视频教程_Hibernate02_主要接口简介及示例尚学堂科技_王勇_JA V A视频教程_Hibernate03_持久对象的生命周期及Query接口初步尚学堂科技_王勇_JA V A视频教程_Hibernate04_常用映射标签及属性尚学堂科技_王勇_JA V A视频教程_Hibernate05_多对一及一对一关联映射尚学堂科技_王勇_JA V A视频教程_Hibernate06_SessionFlush简介尚学堂科技_王勇_JA V A视频教程_Hibernate07_一对多关联映射尚学堂科技_王勇_JA V A视频教程_Hibernate08_多对多关联映射尚学堂科技_王勇_JA V A视频教程_Hibernate09_Lazy策略尚学堂科技_王勇_JA V A视频教程_Hibernate10_继承映射尚学堂科技_王勇_JA V A视频教程_Hibernate11_其他映射尚学堂科技_王勇_JA V A视频教程_Hibernate12_悲观锁与乐观锁尚学堂科技_王勇_JA V A视频教程_Hibernate13_树形结构作业及HQL尚学堂科技_王勇_JA V A视频教程_Hibernate14_一级缓存_二级缓存_查询缓存尚学堂科技_王勇_JA V A视频教程_Hibernate15_抓取策略尚学堂科技_王勇_JA V A视频教程_Hibernate16_物料管理作业及Hibernate回顾尚学堂科技_王勇_JA V A视频教程_Spring01_源代码及重要说明尚学堂科技_王勇_JA V A视频教程_Spring02_Spring简介尚学堂科技_王勇_JA V A视频教程_Spring03_IoC容器尚学堂科技_王勇_JA V A视频教程_Spring04_属性注入尚学堂科技_王勇_JA V A视频教程_Spring05_Bean的作用域及自动装配尚学堂科技_王勇_JA V A视频教程_Spring06_代理模式及AOP术语尚学堂科技_王勇_JA V A视频教程_Spring07_Spring_AOP示例尚学堂科技_王勇_JA V A视频教程_Spring08_事务尚学堂科技_王勇_JA V A视频教程_Spring09_SSH集成尚学堂科技_王勇_JA V A视频教程_Spring10_作业及Spring回顾。

java从入门到精通学习笔记-Lesson2(面向对象上)

java从入门到精通学习笔记-Lesson2(面向对象上)

面向对象编程概述●简单的说,面向面向对象编程(Object Oriented Programming,简称OOP)描述的是对象之间的相互作用。

●面向对象编程与面向过程编程的区别:过程化程序设计先确定算法,再确定数据结构;面向对象编程先确定数据结构,再确定运算。

面向过程编程的程序员,习惯于建立数据结构存放数据并定义方法(函数)来操作数据;面向对象编程的程序员则构造一个对象模型,将数据与方法组织在一起。

对象对象的状态对象的行为●我们把现实世界的事物抽象成对象。

●对象一般都有两个特征:状态(state)和行为(behavior).●软件的对象概念是由现实世界对象抽象而来。

把现实世界的状态保存在软件对象的变量中;现实世界对象的行为通过软件对象的方法(函数)来实现。

类和对象●把相似的对象划归成一个类。

在软件中,类,就是一个模板,它定义了通用于一个特定种类的所有对象的状态(变量)和行为(方法)。

●类是创建对象的模板,对象是类的实例。

面向对象程序设计●从程序设计的角度看,类是面向对象程序中最基本的程序单元。

类实质上定义的是一种数据类型,这种数据类型就是对象类型。

所以我们可以使用类名称来声明对象变量。

●声明对象变量之后,还不能使用对象。

必须用运算符new创建对象实体之后,才能使用对象。

class Point //运行结果为:10 10{int x,y;void output(){System.out.println(x);System.out.println(y);}public static void main(String[] args){Point pt;pt=new Point();pt.x=10;pt.y=10;pt.output();}}class Point //运行结果为:5 5{int x,y;Point() //构造函数没有返回类型修饰符,但可以用public等修饰{x=5;y=5;}void output(){System.out.println(x);System.out.println(y);}public static void main(String[] args){Point pt;pt=new Point(); //首先调用构造函数初始化实例.//pt.x=10;//pt.y=10;pt.output();}}class Point// 运行结果为: 3 3{int x,y;Point(int a,int b) //构造函数没有返回值{x=a;y=b;}void output(){System.out.println(x);System.out.println(y);}public static void main(String[] args){Point pt;pt=new Point(3,3); //首先调用构造函数初始化实例.//pt.x=10;//pt.y=10;pt.output();}}类的构造方法●构造方法的名字和类名相同,并且没有返回值。

马士兵hibernate学习笔记(文字整理版)

马士兵hibernate学习笔记(文字整理版)

马士兵hibernate学习笔记(文字整理版)课程容 (5)1 HelloWorld (5)2 Hibernate原理模拟 - 什么是O/R Mapping以及为什么要有O/R Mapping (5)3 常见的0/R框架(了解) (5)4 hibernate基础配置(重点) (5)5 ID生成策略(重点 AUTO) (5)6 Hibernate核心开发接口介绍(重点) (5)7 对象的三种状态(了解) (5)8 关系映射(重点) (5)9 Hibernate査询(HQL) (5)10 在Struts基础上继续完善BBS200 (5)11 性能优化(重点) (5)12 补充话题 (5)风格 (5)1 先脉络,后细节 (5)2 先操作,后原理 (5)3 重Annotation,轻xml配置文件 (5)资源 (5)1 . (5)2 hibernate zh_CN文档 (5)3 hibernate annotation references (5)环境准备 (5)1 下载hibernate-distribution-3.3.2.GA-dist (5)2 下载hibernate-annotations-3[1].4.0.GA (5)3 注意阅读hibernate compatibility matrix(hibernate download) (5)4 下载slf4jl.5.8 (6)Hibernate HelloWorld (6)1 建立新java 项目,名为hibernate_0100_HelloWorld (6)2 学习建User-library-hibernate,并加入相应的jar包 (6)3 引入mysql的JDBC驱动包 (6)4 在mysql中建立对应的数据库以及表 (6)5 建立hibernate 配置文件hibernate.cfg.xml (6)6 建立Student 类 (6)7 建立Student 映射文件 Student.hbm.xml (6)8 将映射文件加入到hibernate.cfg.xml中 (6)9 写测试类Main,在Main中对Student对象进行直接的存储测试 (6)10 FAQ: (6)11 Note: (6)12 建立能力 (7)建立 Annotation 版本的 HelloWorld (7)1 创建teacher 表,create table teacher (id int primary key, name varhcar(20), title varchar(lO)); (7)2 创建Teacher 类 (7)3 在hibernate lib 中加入annotation的jar包 (7)4 参考Annotaion文档建立对应的注解 (7)5 在hibernate.cfg.xml中建立映射<mapping class:.../〉 . (7)6 参考文裆进行测试(注意文裆中缺少configure()的小bug) (7)7 FAQ: 不给提示 (7)What is and Why 0/R Mapping (7)1 JDBC操作数据库很繁琐 (7)2 Sql语句编写并不是面向对象的 (7)3 可以在对象和关系表之间建立关联来简化编程 (7)4 0/R Mapping 简化编程 (7)5 0/R Mapping跨越数据库平台 (7)6 Hibernate_0200_OR_Mapping_Simulation (7)0/R Mapping Frameworks (7)1 hibernate (7)2 toplink (8)3 jdo (8)4 JPA (8)Hibernate基础配置 (8)1 对应项目:Hibernate_0300_BasicConfiguration (8)2 介绍MSQL的图形化客户端 (8)3 hibernate.cfg.xml: hbni2ddl.auto (8)4 搭建日志环境并配置显示DDL语句 (8)5 搭建jUnit环境 (8)6 hibernate.cfg.xml:show_sql (8)7 hibernate.cfg.xml:format_sql (8)8 表名和类名不同,对表名进行配置 (8)9 字段名和属性相同 (8)10 字段名和属性名不同 (8)11 不需要psersistence的字段(不用列) (8)12 映射日期与时间类型,指定时间精度 (8)13 映射枚举类型( 比较少用) (9)14 字段映射的位置(field或者get方法) (9)15 Lob (9)16 课外:CLOBBLOB类型的数据存取 (9)17 课外:Hibernate自定义数据类型 (9)18 hibernate 类型 (9)ID生成策略 (9)1 对应项目:hibernate_0400_ID (9)2 注意: (9)3 xml生成id (9)4 注解方式:GeneratedValue (9)5 FAQ; (10)6 联合主键 (10)核心幵发接口介绍 (12)1 hibernate_0500_CoreAPI (12)2 Hibernate API文档需要单独下载 (12)3 Configuration (12)4 SessoinFactor (12)5 Session (12)6 SchemaExport (自动建表) (13)7 Query 接口 (13)8 Note: (13)三种对象状态 (14)1 上一个 project (14)2 三种状态的区分关键在于 (14)3 三种状态: (14)4 对这三种状态需要关注的问题是在该状态下如果进行数据库的操作会发生什么结果,比如改变属性的 (14)关系映射(重要) (15)对象之间的关系 (15)1 这里的关系映射指的是对象之间的关系,并不是指数据库的关系,本章解决的问题是当对象之间处于 (15)2 简化问题: (15)3 —对一 (15)4 —对多 (15)5 组件映射 (15)一对一关联 (16)1 一对一单向外键关联 (16)2 一对一双向外键关联 (16)3 一对一单向主键关联(不重要) (17)4 一对一双向主键关联(不重要) (17)5 联合主键 (17)组件映射 (17)1 项目:hibernate_1100_component (17)2 对象关系:一个对象是另外一个对象的一部分 (17)3 数据库表:一表 (17)4 annotation: Embeddable Embbeded (17)5 xml: 使用<component,例如: (18)多对一与一对多 (18)1 多对一单向关联 (18)2 一对多单向关联 (19)3 一对多(多对一)双向关联 (19)多对多 (20)1 单向关联: (20)2 双向关联: (21)关联关系中的CRUD_Cascade_Fetch (21)1 hibernate_1700_one2many_many2one_bi_crud (21)2 设定cascade以设定在持久化时对于关联对象的操作(CUD,R归Fetch管) (21)3 cascade仅仅是帮我们省了编程的麻烦而已,不要把它的作用看的太大 (21)4 铁律:双向关系在程序中要设定双向关联 (22)5 铁律:双向mappedBy (22)6 fetch (22)7 Update时ManyToOne()中的cascade参数关系 (22)8 Delete时ManyToOne()中的cascade关系 (22)9 O/RMapping 编程模型 (23)10 要想删除或者更新先做load,除了精确知道ID之外 (23)11 如果想消除关联关系,先设定关系为null.再删除对应记录,如果不删记录,该记录变成垃圾数据 (23)12 练习:多对多的CRUD (23)关系映射总结 (24)1 什么样的关系,设计什么样的表,进行什么样的映射 (24)2 CRUD,按照自然的理解即可(动手测试) (24)集合映射(不太重要) (24)1 项目名称:hibernate_1800_Collections_Mapping (24)2 Set (24)3 List (与Set差不多多个OrderBy) (24)4 Map (24)继承映射(不太重要) (24)1 三种方式 (24)作业: (24)1 学生课程、分数的设计(重要) (24)2 设计: (25)3 树状结构的设计(至关重要) (25)Hibernate 查询(Query Language) (26)HQL vs EJBQL (26)1 NativeSQL >HQL.> EJBQL(JPQL 1.0) > QBC(Query By Criteria) > QBE(Query By Example)" 262 总结:QL应该和导航关系结合,共同为査询提供服务。

Java学习笔记(必看经典).pdf

Java学习笔记(必看经典).pdf
对于对象的要求:高内聚、低耦合,这样容易拼装成为一个系统。 实现高内聚就是要最大限度低提高复用性(复用性好是因为高内聚 )。 可复用性是 OOP 的基础。
比较面向过程的思想和面向对象的思想: 面向过程的思想:由过程、步骤、函数组成,以过程为核心; 面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。 面向过程是先有算法,后有数据结构。 面向对象是先有数据结构,然后再有算法。
关系运算符:instanceof a instanceof Animal;(这个式子的结果是一个布尔表达式) a 为对象变量,Animal 是类名。 上面语句是判定 a 是否可以贴 Animal 标签。如果可以贴则返回 true,否则返回 false。
在上面的题目中: a instanceof Animal 返回 True, a instanceof Dog 也返回 True,
This 表示当前对象。
Public void printNum(){ Int number=40; System.out.println(this.number);
} 此时打印的是实例变量,而非局部变量,即定义在类中而非方法中的变量。
This.number 表示实例变量。 谁调用 this.number 那么谁即为当前(this)对象的 number 方法。
可以构造多个构造方法,但多个构造方法的参数表一定不同,参数顺序不同即属于不同的构造方法: public student(string name,int a){ } public student(int a,string name){ } 为两个不同的构造方法。 如果我们未给系统提供一个构造方法,那么系统会自动提供一个为空的构造方法。 练习:写一个类,定义一个对象,定义两个构造方法:一个有参,一个无参。 (编写一个程序验证对象的传递的值为地址) 注意下面这种形式: static void changename(student stu){stu.setName “LUCY”} 注意生成新的对象与旧对象指向无关,生成新对象生命消亡与旧对象无关。

马士兵-Java笔记

马士兵-Java笔记

马士兵-Java笔记Java语言的特点:1. 一种面向对象的语言;2. 一种平台无关的语言,提供程序运行的解释环境;3. 一种健壮的语言,吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如:指针,内存的申请与释放等)。

Java两种核心机制:Java虚拟机、垃圾收集机制;一个Java源文件中最多只能有一个public类。

其他类的个数不限,如果源文件包含一个public类,它必须按该类名命名;Java标识符命名规则:1. 标识符由字母、下划线“_”、美元符“$”或数字组成;2. 标识符应以字母、下划线、美元符开头;3. Java标识符大小写敏感,长度无限制。

从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用。

数据类型包括基本数据类型和引用数据类型:1. 基本数据类型:数值型:整数类型(byte,short,int,long),浮点类型(float,double)字符型(char)布尔型(boolean)2. 引用数据类型:类(class)接口(interface)数组Java语言的整型常量默认为int型,声明long型常量可以后加‘l’或‘L’。

Java浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F.Boolean类型不可以转换为其他的数据类型。

整型,字符型,浮点型的暑假在混合运算中相互转换,转换时遵循一下原则:1. 容量小的类型自动转换为容量大的暑假类型;数据类型按容量大小排序为:Byte,short,char->int->long->float->doubleByte,short,char之间不会互相转换,他们三者在计算时首先会转换为int类型2. 容量大的暑假类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出;使用时要格外注意。

JAVA笔记(根据马士兵的java视频整理)

JAVA笔记(根据马士兵的java视频整理)

JAVA视频教程尚学堂---手把手教程Call:86-主讲教师马士兵SCM系统--------Java+VC跨平台(电信宽带运营平台-------Java+WEB(J2EE)跨平台远程教学平台----Java+WEB(tomcat)VOD视频监控-----VCERP视频会议---------VC新闻发布系统-----Java+XML(模板)网上商城课堂内容、教学方法、学习方法、预备知识、教学资源JAVA基础贯穿数据结构的知识(时间复杂度、链表)---非常重要语法基础【变量、循环、分支】最核心的东西—原理--学好OO【面向对象是最重要的】有新东西学是好事----个人价值Exception 从Java Web开始,框架巨多无比Array【数组】基础类、常用类I/O StreamCollection/Generic【集合类】Thread【线程】TCP/UDP【网络底层】GUI【Graphic User Interface 图形化用户接口窗口】Meta Data【以后讲,与紧密相关】Regular Expression【正规表达式】JDK初步Java Web编程【主攻一个框架---讲原理,略讲其他框架】针对Web程序J2EE【一套标准,包含Java Web 、JDPC、JSP、SP、JB/开源框架—就分步式来说,目前(2005)无东西与之抗衡】(比较,,)企业级应用J2ME移动设备移动增值SP运营商3G,2.5G,要火爆起来【网络先铺起来,应用才能上来;3G的网络还没有铺开、火爆起来,讲3G的应用超前了】巨无霸式的教学理论举例理论回顾练习讲解【三片面包加两片肉】注重结合工程实践【完全结合】注重传授自学能力【自学的东西相当重要,授人以鱼,不如授人以渔;慢慢学会掌握一定基础后才有,灌输、背,融成血液里的一部分,心中无剑,手中有剑—前提—心中有剑手中也有剑;时间短,强度大,该背就背】个人能力分三个层次知识学习前人的知识---学习能力的一个表现,被动地接受—接受能力{自己学习了知识后考虑如何去应用,去---学习解决问题的方法【类似问题遇到过】灵活运用学到的知识【碰到什么问题采用什么方法】解决问题的思路【最高层次】创造解决问题的方法【思路掌握了,遇到新问题,自己拓展一条思路,解决问题,不可能一口吃成一个胖子,沿着这三个层次一点一点往上升首先打造自己学习知识的能力,先把该掌握的知识掌握了,再谈如何应用---如何教---教大家写项目每一个知识教太深—给项目留得时间特别短---不合适;自学一些东西,慢慢去培养解决问题的思路,试着朝这个方向去培养,工作后慢慢遇到新问题使劲去思考了积累起来逐渐会有这个能力,灵活一点、再灵活一点!基础知识要背—灵活应用的东西不能背,无一定之规,在实践中慢慢锻炼—实践的越多—敲的代码越多(掌握思路后自主敲代码,哪怕敲不出来再看别人的思路—收获远远不一样,学习要自主一点,多思考思路才能开阔—无捷径,努力锻炼自己的就业能力。

马士兵-J2SE第二章-基础语法-个人笔记

马士兵-J2SE第二章-基础语法-个人笔记

第二章基础语法一、标识符1.Java对各种变量、方法和类等要素命名时使用的字符序列成为标识符。

2.命名规则:a)以一个字母、下划线(_)或美元符号($)开始b)由一个字母、下划线(_)或美元符号($)或数字组成c)是大小写区别对待的, 且无最大长度二、关键字关键字对Java技术编译器有特殊的含义,它们可标识数据类型名或程序构造(construct)名。

表2-1列出了使用在Java编程语言中的关键字。

abstract do implements private throwboolean double import protected throwsbreak else instanceof public transientbyte extends int return truecase false interface short trycatch final long static voidchar finally native super volatileclass float new switch whilecontinue for null synchronizeddefault if package this三、常量a)Java的常量值用字符窜表示,区分为不同的数据类型i.整形:39实型3.14 字符常量’a’字符串常量:”hellworld”四、变量a)是程序中最基本的存储单元,包括变量类名,变量类型和作用域b)每个变量都属于特定的数据类型,使用前必须声明,让后赋值,才能使用c)程序执行过程重要!!!01_标识符_关键字_数据类型_1.avi五、变量分类a)按被声明的位置:i.局部变量:方法或语句块部(方法的参数叫局部变量)(小)ii.成员变量:方法外部、类的部(大)iii.注意:类外面(与类对应的大括号外面)不能有变量的声明b)按所属的数据类型:i.基本数据类型变量ii.引用数据类型变量六、数据类型划分 4类8种1.boolean只取true或false2.char 字符型(单引号),采用Unicode编码,每个字符占两个字节(可以用十六进制编码形式表示);a)char c1 = ‘\u0061’;b)char c2=’\n’; 转移字符’\’3.整数型:有固定的表数围和字段长度a)十进制 12b)八进制 0开头 012c)十六进制要求0X或0x开头 0x12d)默认为int型i.4.浮点型:有固定的表数围和字段长度a)十进制 3.14b)科学计数法:2.14e2c)默认为double 要声明float 必须在数字后面加f或者F float f = 12.3fd)七、基本数据类型转换a)boolean类型不可以转换为其他数据类型,其他类型也不能转换为booleanb)整形,字符型,浮点型的数据在混合运算中相互转换:i.容量小的自动变为大的,byte,short,char->int->long->float->doubleii.byte,short,char之间不能转哈,先转换为intc)容量大的变为小的时,要加上强制转换符,会造成精度降低d)多种类型数据混合运算,系统先将所有数据自动转换为最大的那中,然后计算例子TestConvert.java TestConvert2.java八、格式a)大括号对齐b)遇到{缩进,Tab / Shift + Tabc)程序块之间加空行d)并排语句之间加空格e)运算符两侧加空格i.有特定条件f){前面有空格g)成对编程九、运算符a)算术:+ , - , * , / , % , ++ , --b)关系:> , < , >= , <= , == , !=c)逻辑: ! , & , | , ^ , && , ||d)位: & , | , ^ , ~ , >> , << , >>>e)赋值 : =f)扩展赋值: += , -= , *= , /=g)字符串连接: +1.++(--)在后时先取值在运算2.++(--)在前时先运算后取值i.int i1 = 10 , i2 = 20;ii.int i = (i2++);iii.i1 = (++2i)iv.则:i = 20 i2 = 22 i1 = 223.逻辑运算符i. ! 非 , & 与 , | 或 , ^ 异或 , && 短路与 , || 短路或ii.4.赋值运算与扩展赋值运算5.字符串连接: +i.对字符串进行连接ii.+ 运算符两侧的操作数中只要有一个是字符串(String ) 系统会自动将一个操作数转换为字符串iii.当打印时,无论什么类型,都自动转换为字符串进行打印十、表达式a)符合一定语法规则的运算符和操作数的序列b)顺序:按照运算符的优先级从高到低,优先级相同的,按照事先约定的结合方向进行。

马士兵 J2SE基础 概念总结

马士兵 J2SE基础 概念总结

基础概念(J2SE)(1_Java简介,2_基础语法)1.Java是解释型语言:java需要先编译为.class字节码文件,在执行时用解释器解释成操作系统能识别的文件。

需要经过两次操作。

Java:编译*.java源代码文件---编译器编译---*.class字节码文件,执行*.class字节码文件----解释器解释----操作系统能识别的文件C/C++: 编译 .C 源代码文件----编译器编译----*.exe字节码文件, 执行*.exe字节码文件----操作系统能识别的文件。

2.基础类型的包装类基础类型分配到栈,引用类型分配到堆基础类包装类int Integerchar Charaterboolean Boolean…转换:1. 当需要把String 转换为基础数据类型时,使用对应的基础数据类型的包装类里面的方法。

列:int a = Integer.parseInt(s);2. 将基本类型数据转换为String:int a = 2;String m = String.valueOf(a);3. String转char:String s = “Xforce”char a = s.charAt(1);(3_面向对象编程)重点:1.代码内存分析:06_内存解析_1, 07_内存解析_2,08_内存解析_3,14_TestCircle程序分析_1, 15_TestCircle程序分析_2, 15_TestCircle 程序分析_2.2.动态绑定和多态39_多态_1.avi 40_多态_2.avi 内存分析见39_多态_1.avi TestPolymoph\ Test.java父类引用指向子类对象解释:37_对象转型_1.avi3.抽象类、抽象方法4.接口一、对象和类的概念1.类是同种对象的集合与抽象,类中定义了这一类对象所应具有的静态和动态属性。

二、面向对象设计思想和步骤:(1)分析问题中有哪些类那些对象(2)分析这些对象中应该具有的属性和方法(3)分析类与类之间的关系三、Java类的定义四、局部变和成员变量局部变量:方法或语句块内部(方法的参数叫局部变量)(小)( 必须赋初试值才可以使用)成员变量:方法外部、类的内部(大), 不用初始化,java系统会给你赋初始值五、引用类型(C中的指针,占两块内存)六、构造函数构造函数是定义在java类中的一个用来初始化对象的函数1.构造函数名字与类的名字相同,大小写也保持一致2.使用new+构造方法创建一个新的对象3.构造函数与类同名切没有返回值。

尚学堂马士兵JavaScript学习笔记

尚学堂马士兵JavaScript学习笔记

一、程序开发分为客户端、服务器端客户端开发的好处减少客户端到服务器端的往返。

表单验证服务器端开发的好处web应用的核心逻辑集中管理胖客户端、瘦客户端二、客户端编程的主要技术javascript(最主要的)vbscriptjscriptappletactivex组件plug-in技术(价值在于:让专家级程序员开发新型语言)flash技术的最新发展jsdk包含的plug-inyahoo 的工具条百度搜索伴侣CNNIC网络实名等3721三、学习资料msdn jscr ipt参考CoreGuideJS15.zipCoreReferenceJS15.zipJavaScript手册-中文.chmJavaScript 2005- Wrox - Professional Javascript For Web Developers.pdf 四、JavaScript and ECMA versions五、JavaScript和Java的区别基于对象和面向对象解释和编译强变量和弱变量JavaScript中变量声明,采用其弱类型。

即变量在使用前不需作声明,而是解释器在运行时检查其数据类型x=1234; //数值型变量y=“4321”; //字符型变量代码格式不一样嵌入方式不一样六、JavaScriptJavaScript是一种描述式语言,它与HTML结合起来,用于增强功能,并提高与最终用于之间的交互性能由Netscape公司利用Sun的Java开发它是与Java完全不同的一种语言。

虽然在结构和语法上与Java类似,但是,它只是函数式的语言。

客户端的JavaScript 必须要有浏览器的支持JavaScript (ECMAScript)基础语法DOMDocument Object ModelBOMBrower Object ModelJavaScript/jscript / ECMAScriptavaScript是由Netscape公司开发.它的前身是Live ScriptMicrosoft发行jscript用于internet explorer最初的jscript和javascript差异过大,web程序员不得不痛苦的为两种浏览器编写两种脚本。

java-hibernate笔记(讲义)-【尚学堂马士兵老师】

java-hibernate笔记(讲义)-【尚学堂马士兵老师】

java-hibernate笔记(讲义)-【尚学堂马士兵老师】知识点终结:1 新建项目2 学习建立user-library-hibernate,并加入相应的jar包a项目右键-build path-configure build path-add libraryb选择user-library,在其中新建library,命命为hibernatec 在该library中加入hibernate所需要的jar包hibernate3.3.2/hibernate3.jar/lib/required目录下的所有包6个Sl4j-nop jar3 引入mysql的JDBC驱动包4 在MYSQL中建数据库和相应的表student(id,name,age)5 建立hibernate配置文件hibernate.cfg.xml参考文档中COPY,修改对应的数据库连接,6 建立student类7 建立映射文件Student.hbm.xml 参考相应文档8 将映射文件加到hibernate-cfg.xml中搭建日志环境并配置显示DDL语句slf的实现:slf4j nodep ,log4j ,jdk logging api ,apache common-log.slf4j.nop.jar是slf-api.jar其相应的接口实现把slf的接口对到log4j的实现,在user library中hibernate,把slf的实现slf4j-nop-1.5.8.jar去掉,添加log4j的实现log4j-1.2.15.jar,再添加一个slf-api和log4j转换器slf4j-log4j12-1.5.8.jar.把slf的接口转换成log4j的接口.最后添加一个log4j的配置文件log4j.properties利用HIBERNA TE导出数据库建表//读取配置文件hibernate.cfg.xmlConfiguration cfg=new AnnotationConfiguration().configure();(有注解时使用AnnotationConfiguration),configure()可以手动指定配置文件名称. Configuration cfg=new Configuration(),会默认读取hibernate.properties文件//创建schemaExport对象import org.hibernate.tool.hbm2ddl.SchemaExport;SchemaExport export=new SchemaExport(cfg);//创建数据库表export.create(true, true);对象映射(采用Annotation注解方式)1 建表Create table teacher(id int primary key,name varchar(20),title varchar(20));2 创建teacher类,并进行注解@import javax.persistence.Entity;import javax.persistence.Id;在bean中加注解@ Entity,@Id(加在getId()上面)3 在hibernate中加入annotation相应的jar包hibernate-annotations.jar/lib目录下加入相应的包ejb3-persistence.jar, hibernate-commons-annotations.jar注意:annotation文档中并没有提到hibernate-annotations.jar包4 参考annotation文档建立对应的注解5 在hibernate.cfg.xml中建立映射<mapping class=”com.xx.xx”/>6 示例//AnnotationConfiguration;Configuration cfg=new AnnotationConfiguration();SessionFactory sf=cfg.configure().buildSessionFactory();Session session=sf.openSession();session.beginTransaction();session.save(t);//session.getTransaction().commit();session.close();sf.close();对象映射(采用配置文件方式)1 在相应的类中建立对应的配置文件.例如Student类对应的配置文件Student.hbm.xml<hibernate-mapping package="com.model"><class name="Student" table=" Student" ><id name="id" column="id"></id><property name="name" column="name" /><property name="age" column="age" /></class></hibernate-mapping>2 在hibernate.cfg.xml中添加该映射文件Student.hbm.xml即可<!-- 建立对应的配置文件关联相应的数据库表 --><mapping resource="com/model/Student.hbm.xml"/>注意包名的写法3 示例//读取配置文件hibernate.cfg.xmlConfiguration cfg=new Configuration().configure();//创建SessionFactorySessionFactory sf=cfg.configure().buildSessionFactory();//创建sessionSession session=sf.openSession();session.beginTransaction();session.save(s);session.getTransaction().commit();session.close();sf.close();hibernate.cfg.xml配置hibernate.hbm2ddl.auto属性取值: validate | update | create | create-drop在sessionfactory创建时,自动检查数据结构,或者将数据库schema(表)的DDL导出到数据库,使用create-drop时,在显式关闭sessionfactory时,将drop掉数据库schema.validate 加载hibernate时,验证创建数据库表结构create 每次加载hibernate,重新创建数据库表结构create-drop 加载hibernate时创建,退出是删除表结构update 加载hibernate自动更新数据库结构表名和类名不同的情况时,对表名进行配置1 在注解中import javax.persistence.Table;@Table(name=”TableName”)2 在XML文件中<hibernate-mapping package="com.model"><class name="Teacher" table="Teacher" >配置对应的table属性为相应的表名<id name="id" column="id"></id>…</class></hibernate-mapping>字段名和属性名相同,默认为对于annotation,如果什么注解都不写的话,相当于加了注解@Basic实体bean中所有的非static非transient的属性都可以被持久化, 除非你将其注解为@Transient.所有没有定义注解的属性等价于在其上面添加了@Basic注解. 通过@Basic注解可以声明属性的获取策略(fetch strategy):对于XML文件中不用写column.字段名和属性名不同时Annotation:@column(name=”column_name”)加上相应的getXXX()方法上XML:column属性不需要persistence的字段import javax.persistence.Transient;@ Transient 意思是说这个属性是透明的,不进行持久化,存储的时候不存进去映射日期和时间类型,指定时间精度Annotation:import javax.persistence.Temporal;@Temporal(TemporalType.TIME)XML:指定type<class name="Teacher" table="Teacher" ><id name="id" column="id"></id><property name="name" type="time" />type=time或date</class>枚举类型的转换@Enumerated(EnumType.STRING)字段映射的位置推荐写在gexXXX方法上在程序中通过Hibernate 来保存java.sql.Clob 或者java.sql.Blob 实例时,必须包含两个步骤:1 在一个数据库事务中先保存一个空的Blob 或Clob 实例。

马 士兵_J2SE第 三章_面 向对象编 程_个人学习笔记

马 士兵_J2SE第 三章_面 向对象编 程_个人学习笔记

第三章. 第四章. 第五章. 第六章. 第七章. 面向对象编程一、 面向对象编程思想:从现实世界中客观存在的事物出发来构造软件系统,并在系统的构造中尽可能运用人类的自然思维方式面向对象更加强调运用人类在日常的思维逻辑中经常才赢的思想方法与原则,如抽象分类,继承,聚合,多态二、 对象和类的概念1. 对象用计算机语言对问题域中食物的描述,对象通过“属性(attribute)”和“方法(method)”来分别对应事物所具有的静态属性和动态属性对象是属性(成员变量)和方法的集合。

{一类事物的具体的某一个东西(符合这类事物的具体特征的某个东西)叫对象}2. 类是同种对象的集合与抽象,类中定义了这一类对象所应具有的静态和动态属性。

关系:类可以看成一类对象的模板,对象可以看成该类的一个具体实例,瓶子是一个类,某个瓶子就是对象三、 面向对象设计思想和步骤:(1) 分析问题中有哪些类那些对象(2) 分析这些对象中应该具有的属性和方法 (3) 分析类与类之间的关系 四、 Java 与面向对象1. 对象是Java 程序的核心,在java 程序中“万事万物皆对象”。

2. 对象可以看成静态属性(成员变量)和动态属性(方法)的封装体3. 类是用来创建统一类型的对象的“模板”,在一个类中定义了该类对象所应具有的成员变量以及方法4.J2SDK提供了很多类供编程人员使用,编程人员也可以自定义自己的类五、Java类的定义类的定义主要由成员变量和方法组成例如:public int getAge( ) { return age ;}public class Person {int id;int age = 20;void Person(int _id, int _age) {id = _id;age = _age;}public static void main(String[] args) {Person tom = new Person();tom.Person(1, 25);//Person jerry = new Person();Point p = new Point();}}class Point {Point() {}int x;int y;}六、成员变量成员变量可以使用java语言中任何一种数据类型(包括基本类型和引用类型),作用范围为整个类体注意: 局部变量必须赋初试值才可以使用成员变量不用初始化,java系统会给你赋初始值Byte,short,int----->0Long ----->0Lchar ----->’\u0000’float ----->0.0Fdouble ----->0.0Dbloolean ----->false所有引用类型----->Null七、引用类型(C中的指针,占两块内存)除了java语言中基本类型以外的变量类型Java中的对象是通过引用对其操作的内存值/* 声明string类型的引用变量,但是没使它指向一个对象*/String s null/* 使用new语句创建一个String类型的对象并用S 指向它,以后可以通过S 完成对其的操作*/ S = new String (“hello world!”); 0X3a123b如何在内存中区分类和对象? 类是静态的概念,代码区独享是new 出来的,位于堆内存,类的每个成员变量在不同的对象中都有不同的值(除了静态变量)而方法只有一份,执行的时候才占用内存 八、 对象的创建和使用1. 必须使用new 关键字创建对象2. 使用:对象(引用) .队员变量 来引用对象的成员变量3. 使用:对象(引用).方法(参数列表)来调用对象的方法4. 同一对象的每个对象有不同的成员变变量存储空间5. 同一类的每个对象共享该类的方法 九、 Java 的方法定义[修饰符1 修饰符2 …..] 返回值类型 方法名( 形式参数列表 ){Java 语句;… … … }1.形式参数:在方法被调用时用于接收外界输入的数据。

java笔记马士兵版

java笔记马士兵版

java笔记马士兵版第一章基础语法1.程序执行过程2.java变量的分类3.java数据类型的划分4.数据类型所占的空间大小注意:数值范围数值转换数据类型之间的转化5.运算逻辑符的关系6.do..while 和while的区别执行语句和判断语句执行先后的问题7.break和continue的区别(代码分析)8.方法形式参数:在方法被调用时接收外外界输入的数据。

实参:调用方法时实际传给方法的数据。

返回值:方法执行完毕后返还给调用它的环境的数据。

返回值类型:事先约定的返回值的数据类型,如无返回值,则返回值类型为void。

注意:第二章面向对象1.对象和类的概念2.java与面向对象、类的定义3.Java面向对象的基本概念—引用Java语言中除基本类型之外的变量类型都称之为---引用类型。

Java中的对象通过引用对其经行操作4.构造方法1.当赋值完毕后,栈空间的_id 和_age 会被清除。

2.当没有写构造函数时,编译器会自动添加形如类名(){} 的构造函数。

5.this关键字(代码分析)6.static关键字(代码、内存分析)注意:private static int sid=0; 存储在 data seg 中。

而其余的成员变量存储在stack中。

原因是 static关键字。

7.package和import的语句8.类的集成与权限控制9.方法的重写(代码分析)Super关键字:来引用基类的成分在cc.f()语句中,先执行的是基类的Syso 然后是子类的Syso10.继承中的构造方法11.toString、equals 方法12.对象转型13.动态绑定和多态(代码分析)14.抽象类●用abstract修饰一个方法时,这个方法是抽象方法。

●用abstract修饰一个类时,这个类是抽象的类。

●含有抽象方法的类,必须声明为抽象类,抽象类必须被继承,抽象方法必须被重写。

●抽象类不能被实例化。

●抽象方法只需声明,而不需实例。

马士兵Spring课堂笔记(超级详细版)

马士兵Spring课堂笔记(超级详细版)

课程内容---…详细包括整合struts hibernate------------------------------------1.面向接口(抽象)编程的概念与好处2.IOC/DI的概念与好处a)inversion of controlb)dependency injection3.AOP的概念与好处4.Spring简介5.Spring应用IOC/DI(重要)a)xmlb)annotation6.Spring应用AOP(重要)a)xmlb)annotation7.Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合(重要)a)opensessionInviewfilter(记住,解决什么问题,怎么解决)8.Spring JDBC面向接口编程…(面向抽象编程)1.场景:用户添加2.Spring_0100_AbstractOrientedProgramminga)不是AOP:Aspect Oriented Programming3.好处:灵活什么是IOC(DI),,,有什么好处1.把自己new的东西改为由容器提供a)初始化具体值b)装配<?xml version="1.0"?>-<beans><bean class="erDAOImpl" id="u"/>(class 是个类。

Id就等于构造了一个对象)<bean class="erService" id="userService"><property bean="u" name="userDAO"/> </bean>(把u这个对象注入到UserService这个类的一个userDAO的一个属性里)-</beans>2.好处:灵活装配Spring简介包括整合struts hibernate------------------------------------1.项目名称:Spring_0200_IOC_Introduction2.环境搭建a)只用IOCi.spring.jar , jarkata-commons/commons-loggin.jar3.IOC容器a)实例化具体beanb)动态装配4.AOP支持a)安全检查b)管理transactionSpring IOC配置与应用1.FAQ:不给提示:a)window – preferences – myeclipse – xml – xml catalogb)User Specified Entries – addi.Location: D:\share\0900_Spring\soft\spring-framework-2.5.6\dist\resources\spring-beans-2.5.xsdii.URI:file:///D:/share/0900_Spring/soft/spring-framework-2.5.6/dist/resources/spring-beans-2.5.xsd iii.Key Type: Schema Locationiv.Key: /schema/beans/spring-beans-2.5.xsd2.注入类型a)Spring_0300_IOC_Injection_Typeb)setter(重要)c)构造方法(可以忘记)d)接口注入(可以忘记)3.id vs. Name(可以把Id换成name,没什么区别!)a)Spring_0400_IOC_Id_Nameb)name可以用特殊字符4.简单属性的注入a)Spring_0500_IOC_SimplePropertyb)<property name=… value=….>在配置文件里直接赋值!(在此简单属性为int和string,会自动转换)5.<bean 中的scope属性a)Spring_0600_IOC_Bean_Scopeb)singleton 单例(无论去多少次都是同一个bean)c)proptotype 每次创建新的对象6.集合注入a)Spring_0700_IOC_Collectionsb)很少用,不重要!参考程序7.自动装配a)Spring_0800_IOC_AutoWireb)byNamec)byTyped)如果所有的bean都用同一种,可以使用beans的属性:default-autowire-<bean class="erDAOImpl" name="userDAO"><property name="daoId" value="1"/> </bean><bean class="erDAOImpl" name="userDAO2"><property name="daoId" value="2"/> </bean><bean class="erService"autowire="byType" scope="prototype" id="userService"></bean> </beans>(这里会报错,因为有两个userDAO和UserDAO2都是int类型!)(如果说byname则会显示第一个的内容“1”!,因为UserService类里面的userDAO属性与第一个的名字一样!)8.生命周期a)Spring_0900_IOC_Life_Cycleb)lazy-init (不重要)c)init-method与destroy-methd 不要和prototype一起用(了解)<bean class="erDAOImpl" id="u"></bean><bean class="erService" id="userService" scope="prototype"destroy-method="destroy" init-method="init"></bean></beans>9.Annotation第一步:a)修改xml文件,参考文档<context:annotation-config />b)默认按类型by typec)如果想用byName,使用@Qulifierd)写在private field(第三种注入形式)(不建议,破坏封装)e)如果写在set上,@qualifier需要写在参数上f)10.@Resource(重要)a)加入:j2ee/common-annotations.jarb)默认按名称,名称找不到,按类型c)可以指定特定名称d)推荐使用e)不足:如果没有源码,就无法运用annotation,只能使用xml11.@Component@Service @Controller @Repository(四个一样的功能!!)a)初始化的名字默认为类名首字母小写b)可以指定初始化bean的名字首先先加载ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); 即读beans.xml里面的内容,然后通过找从com.bjsxt开始“scan”含@component的类,找到之后就初始化对象,结果在其一个属相的set方法上找到一个源为“u”的一个bean,于是就加载那个bean!12.@Scope13.@PostConstruct = init-method;(在构造对象后执行此方法)@PreDestroy = destroy-method;(在容器销毁前执行此方法)什么是AOP1.面向切面编程Aspect-Oriented-Programminga)是对面向对象的思维方式的有力补充2.Spring_1400_AOP_Introduction3.好处:可以动态的添加和删除在切面上的逻辑而不影响原来的执行代码a)Filterb)Struts2的interceptor4.概念:a)JoinPoint 释意:切面与原方法交接点即切入点b)PointCut 释意:切入点集合是com.xyz.someapp.service.下面的任何类,任何方法,任何返回值的一个切入点的集合。

马士兵JAVA基础知识整理

马士兵JAVA基础知识整理

东北石油大学计算机与信息技术学院李勇勇Java语言基础知识整理一.计算机语言的发展史及历史地位第一代语言打孔机——纯机器语言 1.第二代语言 2.汇编第三代语言 3.(1)C、Pascal、Fortran面向过程的语言(2)C++面向过程/面向对象(3)java跨平台的纯面向对象的语言(4).NET跨平台语言4.java语言特点(1)一种面向对象的语言(2)一种平台无关的语言,提供程序运行的解释环境(3)一种健壮的语言,吸收了c/c++语言的优点,但去掉了影响程序健壮性的部分(如:指针、内存的申请与释放等)。

二.Java程序运行机制及运行过程1.java两种核心机制(1)Java虚拟机(Java Virtual Machine)(2)垃圾收集机制(Garbge Collection)2.java运行过程源程序(*.java文件)—>java编译器—>字节码(*.class文件)—>类装载器—>字节码校验器—>解释器—>操作系统平台4.java虚拟机(1)java虚拟机可以理解为是一个以字节码为机器指令的CPU。

(2)对于不同的运行平台有不同的虚拟机。

(3)Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。

5.垃圾收集机制(1)不再使用的内存空间应回收—垃圾收集。

(2)在c/c++语言中,由程序员负责回收无用的内存空间。

(3)Java语言消除了由程序员负责回收无用的内存空间的责任,它提供了一种系统级线程跟踪存储空间的分配情况,检查并释放那些可以被释放的存储器空间。

(4)垃圾收集在java程序运行过程中自动进行,程序员无法精确进行控制和干预。

三.Java Application初步1.java源文件以“java”为扩展名。

源文件的基本组成部分是类(class)。

2一个源文件最多只有一个public类,其他类的个数不限,如果源文件包括一个public类,它必须按该类名命名。

(价值3000元)Java自学之路—马士兵

(价值3000元)Java自学之路—马士兵

Java自学之路-马士兵老师 2011年09月19日尚学堂java培训作者:马士兵老师JAVA自学之路一:学会选择为了就业,不少同学参加各种各样的培训。

决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机、嵌入式、游戏、3G、测试等。

那么究竟应该选择什么方向呢?我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的眼睛去观察,去了解这个世界吧。

每个培训机构都会宣传自己的好处,并不能说明大的趋势。

一些新闻文章很有可能是枪手写的,不必太过相信。

国外背景的教师和课程,未必适合你。

那么怎么才能确定自己将来的方向?如何才能从纷繁复杂、或真或假的数据世界中挖出一条路?我讲一个通过招聘网站的观察方法。

可以到各种招聘的网站上查询信息(可以到google上查询招聘的网站),例如:以及csdn的招聘频道等还有一个网站也不错,,综合了各大招聘网站的数据。

这些数据都是最真实不掺假的原始数据,你可以每隔一段时间搜索一次,一些规律就会被总结出来了。

比如说我在中搜索java,全国大概提供了3万个职位。

然后要多翻几页,这样不仅能够看清楚大概有多少是有效的职位,而且还可以看清楚用人单位最关心的技能是什么,这个很重要,决定着你将来要花多少时间和精力在特定的知识点上,比如说swing,搜了一下,全国只有700个左右的职位,仔细读了一下,也并非全是有效的职位,花太多时间和精力在这个上面就不值得了,当然自己感兴趣或者为了研究的话另当别论。

不过如果是为了快速的就业,把太多时间和精力花在很多职业生涯的前一、二年用不到的知识上就太可惜了。

同时,并非某一个行业的职位数目少,就不能当作一个方向进行选择,比如.NET,我搜索到的职位数是1.6万左右,比java少,是不是就选java了呢?不一定,因为java职位虽然多,但是可能竞争者可能也多,有些方向虽然职位数不多,但是和你竞争这些职位的人数量也少,不见得就不能选择。

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

public class Test{ public static void main(String args[]){ Test test = new Test(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000)(1); test.change1(date)(4); test.change2(d1);(7) test.change3(d2);
b.setDay(22),把 b 指向的值改变了,这次真 的变了!
方法执行完后,b 消失,d2 的值变了。
四. 方法重载 类中可以定义相同名字但参数不同的方法。
五. this 关键字 this 指向对象自身的引用。
在类的方法定义中使用 this 关键字代表使用该方法的对象的引用。 当必须指出当前使用方法的对象是谁时要使用 this 有时使用 this 可以处理方法中成员变量和参数重名的情况 this 可以看作是一个变量,它的值是当前对象的引用
_id:1
age = _age; }
_age:25
public static void main(String[] args) {
Person tom = new Person(1, 25); } }
tom:XXX Stack
id:1 age:25
Heap
例子:
class BirthDate { private int day; private int month; private int year; public BirthDate(int d, int m, int y) { //构造方法 day = d; month = m; year = y; }
= name; id = sid++; } public void info(){
name mimi:xxx
"mimi" sid:100
数据区System.out. Nhomakorabearintln ("My name is "+name+" No."+id);
}
id name
id name
public static void main(String arg[]){

5. 构造函数(构造方法) 使用 new +构造方法,创建一个新的对象。 构造函数是定义在 Java 类中的一个用来初始化对象的函数。 构造函数没有返回值。
public class Person {
int id;
int age;
tom:XXX
Person(int _id, int _age) { id = _id;
刚开始,b 执行 d1 执行的对象,但是 new 出 来了一个新对象,b 指向了新的对象
执行完之后,b 这个局部变量消失了,堆里面 的内存不是马上消失,垃圾收集器收集的时 候才消失,但是栈里面的内容马上消失的! 对象里面的值(d1)依然没有变!
change3,把 d2 传进来,b 指向了 d2 指向的 对象
(package)机制,提供类的多重类命名空间 八. 类的继承和权限控制 Java 中使用 extends 关键字实现类的继承机制 通过继承,子类自动拥有基类的所有成员(成员变量和方法) Java 只支持单继承,不允许多继承
name Person
age
student
school
new 一个子类对象出来的时候内存的情况 权限控制:
public void setDay(int d) { day = d;
} public void setMonth(int m) {
month = m; } public void setYear(int y) {
year = y; } public int getDay() { //int 表示返回值类型
public class Leaf(){
int i = 0;
Leaf(int i) {
this.i = i;
}
…main() {
Leaf lf = new Leaf(9);
}
}
注意这里有两个 i。
六. static 关键字
在类中,static 声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用
如果子类构造方法中既没有显示调用基类构造方法,而基类中又没有无参的构造方法,
则编译出错。
十一. Object 类与 toString()方法,hashCode,equals 方法
Object 类中定义有 public String toString()方法,其返回值是 String 类型,描述当前对象
时被初始化,对于该类的所有对象来说,static 成员变量只有一份。
用 static 声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以
在 static 方法中不可方法非 static 方法。
静态方法不再是针对某个对象调用,所以不能访问非静态成员。
可以通过对象引用或类名(不需要实例化)访问静态成员。类名.静态成员变量.
相当于
public static void main(String[] args) {
public class toString {
Dog d = new Dog();
public static void main(String[] args) {
System.out.println("d: " + d);
String s = new String(“aaa”); s[],s 在栈中,”aaa”在堆里面。 4. 对象的创建和使用 必须使用 new 关键字创建对象。 使用对象(引用).成员变量或来引用对象的成员变量。
使用对象(引用).方法或来引用对象的方法。 同一类的每个对象有不同的成员变量存储空间
Dog d = new Dog();
}
System.out.println("d: " +
}
d.toString());
输出:
}
d: Dog@de6ced
}
继承自 Object,可以重写该方法。建议所有子类都重写此方法(Java API)
getClass().getName() + '@' + Integer.toHexString(hashCode())
System.out.println("date=" + date); d1.display(); d2.display(); } public void change1(int i){ (2)i = 1234(3); } public void change2(BirthDate b) { (5)b = new BirthDate(22,2,2004); (6) } public void change3(BirthDate b) { (8)b.setDay(22);(9) } }
的有关信息。
在进行 String 与其他类型数据的连接操作时(System.out.println(“info ” + person )),将自
动调用对象类的 toString()方法。
可以根据需要在用户自定义类型中重新 toString()方法。
public class toString {
九. super 关键字
student:xx
name Person
age
super this
十.继承中的构造方法 子类的构造过程中必须调用基类的构造方法 子类可以在自己的构造方法中使用 super()调用基类的构造方法
使用 this 调用本类另外的构造方法; 如果调用 super,必须写在子类构造方法的第一行 使用子类的构造方法中没有显示的调用基类构造方法,则系统默认调用基类无参数的构 造方法。
一 面向对象设计思想 面向对象设计思想是,从现实世界中客观存在的事物出发构造软件系统,并在系统的构
造中尽可能运用人类的自然思维方式。 面向对象更加强调运用人类在日常思维逻辑中经常采用的思想方法与原则,如抽象、分
类、继承、聚合、多态。 对象用计算机语言对问题与中事物的描述,对象通过属性(attribute)和方法(method)来分
别对应事物所具有的静态属性和动态属性。 类是用于描述同一类型的对象的一个抽象的概念,类中定义了这一对象所因具有的静态
和动态属性。 类可以看成一类对象的模板,对象可以看成该类的一个具体实例。 类(对象)之间的关系:
1. 关联关系:映射到代码一个类的方法里面是另外一个类的对象,我的方法的参数是 你这个类的对象
类名 + „@‟ + hash 编码。
对象
对象
hashCode
对象
对象
对象
对象
java 虚拟机,用一张表记录每个对象在什么位置上,这个表一般用哈希编码来记录,每个对 象都有自己独一无二的哈希编码,根据编码可以找到相关对象,并可以找到对象的位置。 equals 方法:提供定义对象是否“相等”的逻辑,对于任何非空引用值 x 和 y,当且仅
2. 继承关系:什么什么是什么
3. 聚合关系 聚集:谁谁是谁的一部分。组合:咱们俩密不可分!
4. 实现关系:
5. 多态
总结: 考虑问题里面有哪几个类,哪几个对象;找名词 每种类有哪些属性和方法; 类和类之间的关系。
二 Java 与面向对象 对象是 Java 的核心,在 Java 中“万事万物皆对象”。 对象可以看成是静态属性(成员变量)和动态属性(方法)的封装体。 类是用来创建同一类型的对象的模板,在一个类中定义了该类对象所具有的成员变量以
相关文档
最新文档