仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1025|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA编程:OSS报表体系实训条记

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:48:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
恰恰证明了java的简单,要不怎么没有通过c/c++来搞个这种框架?条记
OSS报表体系实训条记







实训公司:中科六合(王海格,先生超好)







EditedbyHenEgg,Michelangelo







2005-2-21







8:00







JasperReport开支

面向OO使用服务器

Java开源数据库

J2EE需求剖析









成就:

教室体现

项目









项目:

lJava平台

(1)(编程言语)开辟情况(编译器)

(2)部署情况(使用服务器)(JDK供应软件运转服务器及基础运转前提,在此基本上的开辟必要设置)目标是重用(相干工具类)

(3)运转情况(操纵体系)







--JVM假造机是操纵体系,即运转情况

--Java包文件性

--渣滓搜集内存办理

--假造cpu(上风)

--线程









(1)+(2)+(3)一致情况复杂开辟















lJava言语

1.OO(最主要的特性)——很年夜的体系







2.可移植性JVM(其实不主要)

3.散布式JVM+AppServer——跨平台的体系







充实使用收集资本跨地区跨版图







4.平安性







Unix:平安性强范例

JVM内置强平安性>Unix

关头营业

1.性命

医疗反省公安重型产业航空

2.钱

银行









小结:

JVM是操纵体系

Java是面向对象,散布式,平安的言语









PS:以上红字粗体部分为java关头手艺









lJava假造机

1.渣滓搜集

2.散布式撑持各类协定

3.多线程线程办理

4.平安性









观点

摹拟了一台盘算机









功效

1.渣滓接纳:

(在内存中)new的对象被装载到对象堆中





A=newAir;

new出一个对象

挪用机关函数,分派在对象堆中

前往一个援用

援用计数器++

当计数器减为0,该变质变成渣滓,从名单里撤除。

渣滓搜集感化:内存泄露,空指针

渣滓搜集机制:

背景精灵线程:当CPU呈现闲置,挪用该线程(优先级低)请求CPU很快有闲置的时分(用Java先CPU再内存再次网卡)









2.供应运转时情况

操纵体系的功效,卖力调进代码,监视代码运转,匡助程序做输出输入,给程序供应一系列的撑持

供应CPU存放器收集读写文件体系平安性



ClassLoader加载

ByteCodeVerifier文件格局语法数组越界

校验4遍

Interpreter:两头代码

JIT立即编译(快)(编译本钱地代码)









安装jdk

设置情况变量

JAVA_HOMEc:j2sdk

Path;%JAVA_HOME%in

CLASSPATH.;%JAVA_HOME%lib

(ps:dos窗口不克不及主动革新,改动情况变量跋文得从头开)

14:00







类:

自界说

笼统









包:

package

把功效邻近的类组合在一同

包是绝对路径,相称于windows里的文件夹

import一个包就引进了一个定名空间

import不即是include

没写包的话,体系默许一个包









Java代码三部分

1)packagecom.project.src

2)importjava.io.*;

3)类

一个文件里能够有多个类,可是有且只要一个public类









eg1

1.staticvoidmain(String[]args)

Mainmethodisnotpublic









2.publicvoidmain(String[]args)

Exceptioninthread"main"java.lang.NoSuchMethodError:main

main是全部程序的出口,不克不及用new出来因为是static办法以是在载进内存时便间接实行以此作为其他程序的出口但main不是关头字









3.publicstaticmain(String[]args)

TestHelloWorld.java:4:invalidmethoddeclaration;returntyperequired

publicstaticmain(String[]args)

java划定必需有局限范例,没有前往值必需界说为void。可是机关函数不同意有前往范例。









4.publicstaticvoidmain(String[]args)==staticpublicvoidmain(String[]args)

会见把持符和润色符地位恣意。但习气把会见把持符放后面









5.可是前往范例不克不及放在下面二者后面

TestHelloWorld.java:4:<identifier>expected

voidstaticpublicmain(String[]args)

^

TestHelloWorld.java:8:(expected//前往值必需贴紧办法名

}

^

2errors

main不是关头字,可是本人不要用它。

6.String[]args

从arg[0]入手下手









正文:

调程序用

//

/**/

javadoc正文

/**

*/

用javadoc酿成文档

javadocHelloWorld.java&ndash;ddoc









Java关头字&标识符&保存字

标识符开首:字母(_,$)

编码标准:

1)成心义的单词构成,第一个单词第一个字母小写,其他单词第一个字母年夜写

2)变量名和办法名一律处置。

3)常量由成心义的单词构成,一切单词全年夜写,单词之间用下划线分隔。

4)类名第一个字母年夜写









Java数据范例

1.基础数据范例(不是对象)

8种:

int,long,short,byte,float,double,char,bool.

2.援用范例

对象只能经由过程援用会见

实践上是平安的指针

数组是援用范例(由于他在C言语里是指针范例)

默许:

Char‘u0000’

boolfalse

援用null

数组null









表达式和流程把持

不要用++--,简单引发误读除在轮回内里

=与==:==只能用于基础范例,不要用于援用范例。equals

短路运算符:if(lasting!=null)&&,||

把几率最高的判别放在后面,节俭程序实行的工夫









范例转换

高位转低位,必需举行强迫范例转化,short与char的转换总要









传参和传值

基础范例传值

援用范例传援用

传的是变量的正本









把持流程,轮回

最好不要用switch(损坏封装,损耗功能,损坏流程)

分支只管用ifelse

轮回只管用for

while(true)在服务器中,做逝世轮回用

别用do-while









实习1

强迫范例转换









实习2

传参

















2005-2-22







8:00







lJavaOO

最早的面向对象Smalltalk,厥后的C++,Java,Phyon,.NET

Smalltalk纯的Java不纯(基础范例等)

Java是劈面向对象的一个完成









对象->数据<-操纵









对象之间的干系&ndash;>动静









OO:按切合人的头脑习气的逻辑来剖析计划,构成了一套形式,即面向对象系统。











注重:

1.不要往承继有代码的类。有代码的类请用对象的组合.

2.承继笼统基类或接口(n个)。接口计划完,不克不及削减和修正,只能增添.

3.多重承继自己没错,必不成少,但要限定多重或单承继,损坏封装性.









多态:

手艺完成:

1.编译时:SRC反省情势范例(声明)

2.运转时:JVM反省实践范例









重载:

(编译时)

处置不异的办法名,分歧的参数列表

在编译器里用办法署名区分。(methodsignature,由办法名+参数列表构成)

不要用运算符重载

















14:00







类(有用类):

1.类头

只要public和默许的,没有公有类

2.属性

static只保存一份拷贝。与类代码保留在一同

静态属性的机关办法:static{}块。

non-static

3.办法

4.机关办法(不是类的基础布局)

5.static块









l类的界说

[权限][润色]class类名[extends父类名][implements接口列表]

{

类体;

}









权限:有public——私有类

无public——同包类

润色:abstract笼统类,只能被承继(假如一个类内里有一个笼统办法,则这个类必需是笼统类。反之,笼统类纷歧定包括笼统办法)不克不及实例化

final最终类,完善类,不克不及被承继。只能实例化









ps:

1:一样平常静态变量被界说成常量

2:用静态办法不克不及会见实例变量,static

3:native在java中挪用当地c代码

4:构着办法:选择native(初级)

5:接口作为援用范例来利用,任何完成该接口的实例都能够存在该接口范例的变量中.









数据成员:

[权限][润色]范例变量名[=初值];

润色:static有——类变量(类名点取)

static无——实例变量(对象名点取)

final用于润色常量

staticfinalintN=5;(90%以上用到static,就加final把它酿成常量。光static损坏封装性)









办法成员:

[权限][润色]前往值范例办法名(行参列表)(传值不传参)

{

办法体;

}









润色:static(静态办法不克不及会见实例对象)

final(不同意重载)(用不到)

abstract(该类必需声明为笼统类)

native当地办法。能够挪用当地代码,好比挪用C代码。









成员权限

public>protected>(default)>private

default同包类

protected同包+子类









接口里的办法默许为:publicabstract









机关办法:(仅能初始化非静态属性,静态办法不克不及操纵非静态属性,反之能够)

办法名=类名

一样平常不是public会见权限

不克不及有任何润色

无前往值范例

假如不供应机关办法,则体系供应一个无参的机关办法。可是存在任何本人写的机关办法,缺省的机关办法当即生效。

类承继的时分,不承继机关办法。

初始化父类super()。假如父类是笼统基类,就不必加了。









super()

this()









接口界说

[权限]interface接口名[extends接口列表]

{

接口体;

}

能够承继多个接口。称为接口的拼装

接口一样平常声明为public

接口作为援用范例来利用。经由过程这些变量,能够会见一切完成该接口的办法。









实习:

1.mod02/exercise3

类的私有办法被称为类的接口。

写一个Account类放在包banking中

并用TestBanking测试









2.在banking中增加类Customer.

3.修正TestBanking。用Customer操纵Account。









2005-2-23







8:00







1.需求剖析(topn)

观点

营业

营业流程

2.用例图(修改)

例:银行的账户Account和客户Customer干系

1)客户有一个或多个账户

2)账户与一个客户联系关系(破例:联名账户)

3)客户公有、把持账户









需求剖析

整体计划

具体计划









例:银行和客户、账号的干系

银行有多少个客户

客户能够选择多家银行(跨界限)

体系中只能有一家银行(体系界限)

银行应当对客户信息保全

银行具有判决权

银行类的外部创立帐户(银行类完整创立把持帐户)









请求:

创立客户

用户提交:姓、名、最后额度、身份证号码、六位暗码

创立帐户

提交:

身份证号码、初始余额









营业:

身份证号码

帐户号码

暗码

营业选择(参数):存存款查余额









闭会尺度

提要计划

1.需求会(10~15分钟)

分头写草图

2.闭会兼并草图

修正草图

3.提交修正草图

4.兼并修正草图

5.画类图:每一个类两团体

6.组装至一台呆板,编译运转









10:43——17:30







banking项目









2005-2-24







8:00















项目总评

细节成绩:

1.只能有一个Bank,计划办法:

Sington计划形式:

机关办法公有,则不克不及从外界创立他

使用该类的静态常量来保留。

staticfinalBankbookIntance=newBank();

Bank类被加载到内存里

new出一个Bank实例,并存在静态区

privateBank()

{

customers=newCustomer[MAX];

customerNumber=0;

}









privatestaticfinalBankbankInstance=newBank();

publicstaticBankgetBankInstance(){

returnbankInstance;

}









或:

privatestaticfinalBankbankInstance=null;

publicstaticBankgetBankInstance(){

if(bankInstance=null)

bankInstance=newBank();

returnbankInstance;

}









在Test.java中

BankaBank=Bank.getBankInstance();









3.数组

援用数组是指针的指针,以是要判空

Vector,List,arrayList(只能存一品种型的对象),也要判空









4.暗码办理办法不克不及用getPassword()。要用Verify()。









上课内容:









非常

java中的非常

程序中60%代码用于处置非常

任何非常都被包装成非常对象

有非常时分,就抛出非常对象,给JVM。JVM往查挪用栈

发生非常的代码不处置非常

优点







1)用对象处置非常







2)使用假造机作非常对象的传送







3)一般代码和处置非常代码完整分隔















try

{

unsafe;

}catch(非常类e)

{

非常处置;

}









办法声明为throws,该办法有用时,必需放在try,catch布局中

publicvoidf(intscore)throwsMyException

{

if(score<0||score>100)

thrownewMyExceptino(“”);

}

承继类的时分,不克不及抛出超越父类的非常。









tips:

接口是用来管辖类,分类类的

类是用来完成接口的,实例化接口的一个工具









I/O流

输出流,输入流是把持统一个流

字符型,字节型









类库里凡有Stream都是字撙节,有Reader就是字符流

InputStreamReader把字撙节转换为字符流

//把System.in转化为一个带缓冲的字符流

BufferedReaderin=newBufferedReader(newInputStreamReader(System.in))

in.readline()









收集

增加

Client端,Server端,协定注释器

Socket毗连

协定本人定

协定的剖析器









newServerSocket









accept()









newSocket









实例:

Server端

1.new一个ServerSocket

try{

s=newServerSocket(5432);

}catch(IOExceptione){}

2.建一个逝世轮回

while(true)

{

try{

Sockets1=s.accept();

}catch(IOExceptione){}

}

3.用发生的一般Socket通信

OutputStreams1out=s1.getOutputStream();

DataOutputStreamdos=newDataOutputStream(s1out);









dos.writeUTF(input);

dos.close();

s1.close();









Client端

1.建一个一般Socket

Sockets1=newSocket(“127.0.0.1”,5432)

2.用Socket通信

InputStreamis=s1.getInputStream();

DataInputStreamdis=newDataInputStream(is);

System.out.println(dis.readUTF());









dis.close();

s1.close();









功课:

1.用例和流程

2.计划类库,Server布局









2005-2-25







8:00















多线程

营业需求并发会见

手艺需求多历程、多线程

I/O流堵塞以后历程









手艺

模子一

1.创立线程的线程

2.线程中跑的代码是哪个对象的代码









界说一个完成Runnable接口的类,完成他的run()办法,然后将这个类的实例作为Thread机关办法的参数。创立Thread类的实例。









在服务器里

newThread(Object);//Object工具类,存一切参数。(包括营业代码)

.start.









机关这个类

classBusinessClassimplementsRunnable

{

publicvoidrun()

{

代码;//挪用其他对象完成营业和交互。

}

}

见exercise/mod15/exercise1









外部类



外->内代码(功效)

内->内部非私有

必要有用外部类









小结:

1.newThread(类)

2.界说这个类,implementsRunnable









C/SBank项目

11:00~2005-2-2617:40















2005-3-7







8:00







温习:

面向对象:明晰,封装,笼统(针对接口编程),复用(io类,汇合类)









C/S->B/S

区分:

C/S是基于操纵体系的(JVM)和基础类库(JDK)的开辟形式。

B/S是基于已有“容器”的开辟形式。









B/S长处:屏障底层的工具

1.给贸易体系的开辟带来便利,重用基本代码和服务(事件平安性)

2.可使用经证实无效(率)的软件架构(j2ee中心形式mvc)

3.贸易的手艺撑持(第三方)









C/S长处:

1.完整把持Client,Server真个布局,利用自界说的通信/营业协定

2.能够准确界说底层服务,削减冗余和毛病

3.一切的开辟代码都是通明的,不存在黑箱









用处

B/S用于对照年夜型的,面向终极用户的贸易体系(财政、人事、物流、电子商务、事情流)

C/S用于各类软件体系(用于二次开辟),或软件产物;特别公用的贸易体系(银行,国防部)









C/S是B/S的基本。前者用的手艺后者都能用到,反之不建立。









B/S几种盛行的架构

都是一种开辟形式,完成手艺变更中

1.J2EE(开辟形式不是开辟手艺)

2..NET

3.PHP

4.CGI(perl,C)

















































J2EE开辟形式布局:

体系功效

客户端

Web层

把持层

营业层

数据操纵层

容器

扫瞄器

Web服务器,JSP/Servlet容器

JSP/Servlet容器,EJB容器

EJB容器,Servlet容器

EJB容器,Servlet容器

手艺

HTML,CSS,XML,JavaScript,Applet

HTTP,JSP,Servlet,HTML

JSP/Servlet,EJB,JavaBean

EJB,JavaBean,Servlet

EJB(Entity),DAO,JDO,R/OMapping

帮助手艺

美工,Flash

资本文件(国际化),MVC

资本文件(国际化),MVC。

针对容器自己的设置文件,JNDI

JMS,JTA









Tips:

JNDI:Java的目次服务(JavaNamingandDirectoryInterface)

JMS:Java动静服务

JTA:Java事件服务

EJB强侵进型容器,不保举利用。







EJB基于的两个手艺:RMI和序列化















主要级:

要学的,主要的:HTML,XML格局,HTTP,JSP,Servlet,JavaBean

要熟的:HTML,JavaScript,DAO,MVC(这两个是两种架构)

看一下:EJB,JNDI,JMS,JTA









10:00















HTML/JSP

HTML表单

JSP盘算->服务器

l客户端

ClientServer端

扫瞄器Brower----------------
只想知道 该用户已被删除
沙发
发表于 2015-1-21 15:22:05 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
admin 该用户已被删除
板凳
发表于 2015-1-21 15:22:05 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
精灵巫婆 该用户已被删除
地板
发表于 2015-1-21 21:52:38 | 只看该作者
是一种使用者不需花费很多时间学习的语言
冷月葬花魂 该用户已被删除
5#
发表于 2015-1-29 14:42:14 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
透明 该用户已被删除
6#
发表于 2015-1-30 07:35:59 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
分手快乐 该用户已被删除
7#
 楼主| 发表于 2015-2-6 08:32:08 | 只看该作者
是一种突破用户端机器环境和CPU
小妖女 该用户已被删除
8#
发表于 2015-2-6 15:18:13 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
简单生活 该用户已被删除
9#
发表于 2015-2-16 20:38:27 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
深爱那片海 该用户已被删除
10#
发表于 2015-3-5 05:28:49 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
飘灵儿 该用户已被删除
11#
发表于 2015-3-17 05:07:51 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
小女巫 该用户已被删除
12#
发表于 2015-3-17 05:07:51 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
海妖 该用户已被删除
13#
发表于 2015-3-23 19:47:59 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
再现理想 该用户已被删除
14#
发表于 2015-4-4 09:07:19 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
谁可相欹 该用户已被删除
15#
发表于 2015-4-9 07:14:42 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
爱飞 该用户已被删除
16#
发表于 2015-4-18 17:30:17 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
蒙在股里 该用户已被删除
17#
发表于 2015-4-22 10:24:31 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
金色的骷髅 该用户已被删除
18#
发表于 2015-5-10 02:26:45 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
第二个灵魂 该用户已被删除
19#
发表于 2015-6-12 03:08:56 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
莫相离 该用户已被删除
20#
发表于 2015-6-18 21:42:30 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-28 23:55

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表