Java基础教程1.pdf

合集下载

Mockito框架教程:Java基础库的单元测试与API使用说明书

Mockito框架教程:Java基础库的单元测试与API使用说明书

About the T utorialMockito is a mocking framework, JAVA-based library that is used for effective unit testing of JAVA applications. Mockito is used to mock interfaces so that a dummy functionality can be added to a mock interface that can be used in unit testing.This tutorial should help you learn how to create unit tests with Mockito as well as how to use its APIs in a simple and intuitive way.AudienceThis tutorial is meant for Java developers, from novice to expert level, who would like to improve the quality of their software through unit testing and test-driven development.After completing this tutorial, you should gain sufficient exposure to Mockito from where you can take yourself to next levels of expertise.PrerequisitesReaders must have a working knowledge of JAVA programming language in order to make the most of this tutorial. Knowledge of JUnit is an added advantage.Copyright & Disclaimer© Copyright 2018 by Tutorials Point (I) Pvt. Ltd.All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher.We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of our website or its contents including this tutorial. If you discover any errors on our website or in this tutorial, ******************************************T able of ContentsAbout the Tutorial (i)Audience (i)Prerequisites (i)Copyright & Disclaimer (i)Table of Contents (ii)1.MOCKITO – OVERVIEW (1)What is Mocking? (1)Mockito (1)Benefits of Mockito (1)2.MOCKITO – ENVIRONMENT SETUP (4)System Requirement (4)3.MOCKITO – FIRST APPLICATION (8)4.MOCKITO – JUNIT INTEGRATION (13)5.MOCKITO – ADDING BEHAVIOR (17)Example (17)6.MOCKITO – VERIFYING BEHAVIOR (21)Example - verify() with same arguments (21)Example - verify() with different arguments (24)7.MOCKITO – EXPECTING CALLS (28)Example (28)8.MOCKITO – VARYING CALLS (33)Example (33)9.MOCKITO – EXCEPTION HANDLING (37)Example (37)10.MOCKITO – CREATE MOCK (41)Example (41)11.MOCKITO – ORDERED VERIFICATION (45)Example (45)12.MOCKITO – CALLBACKS (50)Example (50)13.MOCKITO – SPYING (55)Example (55)14.MOCKITO – RESETTING A MOCK (60)Example (60)15.MOCKITO – BEHAVIOR DRIVEN DEVELOPMENT (64)Example (64)16.MOCKITO – TIMEOUTS (68)Example (68)Mockito1.What is Mocking?Mocking is a way to test the functionality of a class in isolation. Mocking does not require a database connection or properties file read or file server read to test a functionality. Mock objects do the mocking of the real service. A mock object returns a dummy data corresponding to some dummy input passed to it.MockitoMockito facilitates creating mock objects seamlessly. It uses Java Reflection in order to create mock objects for a given interface. Mock objects are nothing but proxy for actual implementations.Consider a case of Stock Service which returns the price details of a stock. During development, the actual stock service cannot be used to get real-time data. So we need a dummy implementation of the stock service. Mockito can do the same very easily, as its name suggests.Benefits of Mockito∙No Handwriting– No need to write mock objects on your own.∙Refactoring Safe– Renaming interface method names or reordering parameters will not break the test code as Mocks are created at runtime.∙Return value support– Supports return values.∙Exception support– Supports exceptions.∙Order check support– Supports check on order of method calls.∙Annotation support– Supports creating mocks using annotation.Consider the following code snippet.Let's understand the important concepts of the above program. The complete code is available in the chapter First Application.∙Portfolio– An object to carry a list of stocks and to get the market value computed using stock prices and stock quantity.∙Stock– An object to carry the details of a stock such as its id, name, quantity, etc.∙StockService– A stock service returns the current price of a stock.∙mock(...)– Mockito created a mock of stock service.∙when(...).thenReturn(...)– Mock implementation of getPrice method of stockService interface. For googleStock, return 50.00 as price.∙portfolio.setStocks(...)– The portfolio now contains a list of two stocks.∙portfolio.setStockService(...) - Assigns the stockService Mock object to the portfolio.∙portfolio.getMarketValue()–The portfolio returns the market value based on its stocks using the mock stock service.MockitoMockito is a framework for Java, so the very first requirement is to have JDK installed in your machine.System RequirementStep 1: Verify Java Installation on Your MachineOpen the console and execute the following java command.Let's verify the output for all the operating systems:2.If you do not have Java installed, To install the Java Software Development Kit (SDK) click here. We assume you have Java 1.6.0_21 installed on your system for this tutorial.Step 2: Set JAVA EnvironmentSet the JAVA_HOME environment variable to point to the base directory location where Java is installed on your machine. For example,Append the location of the Java compiler to your System Path.Verify Java Installation using the command java -version as explained above.Step 3: Download Mockito-All ArchiveTo download the latest version of Mockito from Maven Repository click here.Save the jar file on your C drive, let's say, C:\>Mockito.Step 4: Set Mockito EnvironmentSet the Mockito_HOME environment variable to point to the base directory location where Mockito and dependency jars are stored on your machine.The following table shows how to set the environment variable on different operating systems, assuming we've extracted mockito-all-2.0.2-beta.jar onto C:\>Mockito folder.Step 5: Set CLASSPATH VariableSet the CLASSPATH environment variable to point to the location where Mockito jar is stored. The following table shows how to set the CLASSPATH variable on different operating systems.Step 6: Download JUnit ArchiveDownload the latest version of JUnit jar file from Github. Save the folder at the location C:\>Junit.Step 7: Set JUnit EnvironmentSet the JUNIT_HOME environment variable to point to the base directory location where JUnit jars are stored on your machine.The following table shows how to set this environment variable on different operating systems, assuming we've stored junit4.11.jar and hamcrest-core-1.2.1.jar at C:\>Junit.Step 8: Set CLASSPATH VariableSet the CLASSPATH environment variable to point to the JUNIT jar location. The following table shows how it is done on different operating systems.End of ebook previewIf you liked what you saw…Buy it from our store @ https://。

Java基础知识之ByteArrayOutputStream流的使用

Java基础知识之ByteArrayOutputStream流的使用

Java基础知识之ByteArrayOutputStream流的使⽤⽬录Java ByteArrayOutputStream流的使⽤⼀、ByteArrayOutputStream流定义⼆、ByteArrayOutputStream流实例域三、ByteArrayOutputStream流构造函数四、ByteArrayOutputStream流⽅法五、ByteArrayOutputStream流的作⽤ByteArrayOutputStream 理解ByteArrayOutputStream的⽤法ByteArrayInputStream的⽤法Java ByteArrayOutputStream流的使⽤⼀、ByteArrayOutputStream流定义API说明:此类实现⼀个字节输出流、其中数据被写⼊到字节数组中,缓冲区在数据写⼊时会⾃动增长,关闭该流⽆效,关闭此流后调⽤⽅法不会有异常⼆、ByteArrayOutputStream流实例域/*** 存储数据的缓冲区*/protected byte buf[];/*** 缓冲区中的有效字节数*/protected int count;三、ByteArrayOutputStream流构造函数/*** 创建新的字节数组输出流、默认缓冲区⼤⼩是32个字节*/public ByteArrayOutputStream() {this(32);}/*** 创建新的字节数组输出流,以指定的⼤⼩*/public ByteArrayOutputStream(int size) {if (size < 0) {throw new IllegalArgumentException("Negative initial size: "+ size);}buf = new byte[size];}四、ByteArrayOutputStream流⽅法1)write(int b):写⼊指定的字节到此字节输出流中/*** 写⼊指定的字节到此字节输出流中*/public synchronized void write(int b) {ensureCapacity(count + 1);buf[count] = (byte) b;count += 1;}2)write(byte b[], int off, int len):从指定数组的下标off开始写⼊len个字节到该输出流中/*** 从指定数组的下标off开始写⼊len个字节到该输出流中*/public synchronized void write(byte b[], int off, int len) {if ((off < 0) || (off > b.length) || (len < 0) ||((off + len) - b.length > 0)) {throw new IndexOutOfBoundsException();}ensureCapacity(count + len);System.arraycopy(b, off, buf, count, len);count += len;}3)writeTo(OutputStream out):将此字节输出流的内容写⼊到指定的输出流中/*** 将此字节输出流的内容写⼊到指定的输出流中*/public synchronized void writeTo(OutputStream out) throws IOException {out.write(buf, 0, count);}4)reset():重置此字节输出流,废弃此前存储的数据/*** 重置此字节输出流,废弃此前存储的数据*/public synchronized void reset() {count = 0;}5)对输出流的数据进⾏检索/*** 将此输出流转成字节数组输出*/public synchronized byte toByteArray()[] {return Arrays.copyOf(buf, count);}/*** 将此输出流转成字符串输出*/public synchronized String toString() {return new String(buf, 0, count);}/*** 通过指定编码格式将缓冲区内容转换为字符串*/public synchronized String toString(String charsetName)throws UnsupportedEncodingException{return new String(buf, 0, count, charsetName);}6) close():关闭流⽆效,关闭后调⽤其他⽅法不会有异常/*** 关闭流⽆效,关闭后调⽤其他⽅法不会有异常*/public void close() throws IOException {}五、ByteArrayOutputStream流的作⽤暂时未使⽤过、所以不清楚项⽬中什么地⽅使⽤,因此暂时了解其功能即可ByteArrayOutputStream 理解第⼀次看到ByteArrayOutputStream的时候是在Nutch的部分源码,后来在涉及IO操作时频频发现这两个类的踪迹,觉得确实是很好⽤,所以把它们的⽤法总结⼀下。

JavaCard应用程序开发

JavaCard应用程序开发

制作
JavaCard 应用程序开发三部曲
- 4 规范中定义: 表格 1、ISO 7816 CLA 值
CLA 值
指令类
0x0n, 0x1n ISO 7816 - 4 卡指令,比如文件存取和安全操作
20 to 0x7F 保留
0x8n or 0x9n 你可以用作你的特定的应用程序指令的 ISO/IEC 7816 - 4 格式,根据标准解释' X '
⒈APDU 命令 一个 APDU 命令的结构由它的第一个字节的值控制,大部分情况下看上去如下所示:
图 2、APDU 命令
一个 APDU 命令有一个必须有的头和一个可选的体,包含: · CLA(1 字节):这个必要的字段识别指令的一个特定应用程序类。有效的 CLA 值在 ISO 7816
8
Java 爱好者
2
Java 爱好者
制作
JavaCard 应用程序开发三部曲
图 2a. 带有 Java 功能的智能纽扣
图 2b. 带有 Java 功能的 USB 令牌
请参阅 What is a Smart Card? /products/javacard/smartcards.htm
5
Java 爱好者
制作
JavaCard 应用程序开发三部曲
读取端主应用程序 主应用程序存在于一个例如个人计算机这样的台式机或者终端、电子付款终端、手机或者一个 安全子系统中。 主应用程序处理用户、Java Card 小应用程序和供应商的后端应用程序之间的通讯。 传统的读取端应用程序是使用 C 编写的。近来 J2ME 技术的广泛普及有望使用 Java 实现主应 用程序;例如,它可以在一台支持 MIDP 和安全信赖服务应用编程接口(Security and Trust Services API)手机上运行。 智能卡供应商一般不仅提供开发工具箱,而且提供支持读取端应用程序和 Java Card 小应用程序的 应用程序编程接口。例如 OpenCard Framework /,就是一个基于 Java 的 应用程序编程接口集,隐藏了来自不同供应商的读取器的一些细节,并且提供了 Java Card 远程方 法调用分布式对象模型和安全信任服务应用编程接口(SATSA),我在本文后面一部分讨论它们。

JavaMeteoInfo解析与绘图代码教程详解

JavaMeteoInfo解析与绘图代码教程详解

JavaMeteoInfo解析与绘图代码教程详解最近太忙了,终于有时间继续写了,上⽂说到了基本上的绘图⽅法,但缺少⾊阶呈现,⼀般图叠加着地图上,后端不需要管⾊阶,但也要注意web页⾯⾊阶和我们的⽣成⾊阶⼀定要对的上对于后端导出图⽚的话,就需要添加⾊阶了,这⼀⽂很简单,就涉及⾊阶,名称,⽹格刻度线顺便对代码我进⾏了优化,看起来更直接MeteoDataInfo meteoDataInfo = new MeteoDataInfo();meteoDataInfo.openMICAPSData("D:\\解析数据\\cldas\\cldas\\TEM\\20081000.000");GridData grid = meteoDataInfo.getGridData();//读取地图AVectorLayer scmap = MapDataManage.readMapFile_ShapeFile("C:\\Users\\Administrator\\Downloads\\好例⼦⽹_全国省、县界线shp格式⽮量图(精确到县区域)\\全国省、县界线shp格式⽮量图(精确到县区域)\\sichuan.shp"); //读取地图BVectorLayer qgmap = MapDataManage.readMapFile_ShapeFile("E:\\shp\\四川\\四川省(3)_市界.shp");//描述地图边界线PolygonBreak pb = (PolygonBreak) qgmap.getLegendScheme().getLegendBreak(0);//是否设置填充pb.setDrawFill(false);//设置轮廓颜⾊pb.setOutlineColor(Color.black);//读取⾊阶LegendScheme als = LgsUtil.readFromLgs("D:\\apache-tomcat-8.0.50\\alt⾊阶\\TEM.lgs");//绘制图层VectorLayer layer = DrawMeteoData.createShadedLayer(grid,als,"","",true);//创建视图MapView view = new MapView();layer = layer.clip(scmap);//叠加图层view.addLayer(layer);view.addLayer(qgmap);//视图设置MapLayout layout = new MapLayout();//去除图形边框layout.getActiveMapFrame().setDrawNeatLine(true);//抗锯齿layout.getActiveMapFrame().setMapView(view);view.setAntiAlias(true);layout.setAntiAlias(true);//根据视图计算视图的宽⾼Extent extent = view.getExtent();int size = 800;Rectangle rectangle = new Rectangle(size, (int) (size * 1D / extent.getWidth() * extent.getHeight()));//设置地图区域⼤⼩和外边距int width = rectangle.width;int left = 50;int height = rectangle.height;int right = 140;int top = 50;int bottom = 50;//设置页⾯边界layout.setPageBounds(new Rectangle(0, 0, width + left + right, height + top + bottom));//获取地图框MapFrame frame = layout.getActiveMapFrame();//设置布局边界frame.setLayoutBounds(new Rectangle(left, top, width, height));//绘制⽹格刻度线frame.setDrawGridLine(true);//设置⽹格间隔值frame.setGridXDelt(0.5);frame.setGridYDelt(0.5);//设置图例Rectangle bounds = layout.getActiveMapFrame().getLayoutBounds();LayoutLegend legend = layout.addLegend(bounds.x + bounds.width + 15, 0);legend.setLegendStyle(LegendStyles.Normal);legend.setTop(bounds.y + (bounds.height - legend.getHeight()) / 2);legend.setLegendLayer(layer);//导出layout.exportToPicture(PathUtil.getDeskPath()+"/1.png");以上的⽅法我只设定了刻度线和⾊阶,其他的也很简单,我在下⾯说明⼀下标题设定-放到设定好视图⼤⼩的后⾯Rectangle bounds = layout.getActiveMapFrame().getLayoutBounds();layout.addText(title, bounds.x + bounds.width / 2, y, 18);到⽬前简单的绘制与设定就没有什么可说的了,基本上的操作在⽂章⾥都有了,都是⼀些样式的东西,这些都是绘制已经进⾏插值的图⽚,但在开发中,我们也会遇到天擎和CIMISS直接返回的站点数据,这个怎么绘制下⼀节说明⼀下,再后⾯的章节就是个别问题的研究了到此这篇关于Java MeteoInfo解析与绘图代码教程详解的⽂章就介绍到这了,更多相关Java MeteoInfo绘图教程内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。

在idea中添加和删除模块Module操作

在idea中添加和删除模块Module操作

在idea中添加和删除模块Module操作1、添加模块2、删除模块补充知识:IDEA添加⼦Module的正确姿势因需求要增加⼀个新的测试模块,于是要在⼀堆Module中再添加⼀个Module,单纯的我没有丝毫杂念的开始进⾏添加了。

1. 要在哪个⽬录下添加Module, 就对着该⽬录右击 -> new -> Module (该⽬录下必须有pom.xml⽂件, 否则是没有Module这个选项的)2. 按提⽰操作输⼊必须填写的信息, 最后⼀个界⾯如下图: (注意:case_ignite_cache就是被右击的⽬录, 要在这个⽬录下创建⼀个新的Module)想想挺开⼼的, 创建Module很⽅便嘛, 毫⽆压⼒啊, 马上点个Finish不就成了吗?3. 开⼼的点击Finish然后…收到了⼀个错误提⽰, 还特么在右下⾓显⽰的, 等了半天没看到新的Module显⽰出来, 余光感觉右下⾓似乎有提⽰啊:嗯…这个意思是在说pom⽂件已经存在了, 不可以重复创建, 呵呵哒, 还要我怎样? 不能放弃治疗, 总觉得还能再抢救⼀下, 于是努⼒回忆之前如何成功添加的Module…以下是正确添加姿势:1. 要在哪个⽬录下添加Module, 就对着该⽬录右击 -> new -> Directory, 也就是先创建⼀个⽂件夹⽤于存放新的Module(此步骤可以省略)2. 对着刚才那个⽬录再次右击 -> new -> Module(该⽬录下必须有pom.xml⽂件, 否则是没有Module这个选项的)3. 按提⽰操作输⼊必须填写的信息, 再次到最后⼀个界⾯, 就在此步骤决⼀胜负如下图:注意: 可以不⽤⼿动创建⽂件夹,但是⼀定要给定⼀个不包含pom的路径,IDEA会进⾏⾃动创建。

4. 尝试性的点击Finish, 然后会发现成功了:不出意外还能在⽗级pom.xml⽂件中看到⼦Module的名字(⼦Module的pom⽂件中也会有parent标签):到此处已经成功了, 嗯…完美…继续开⼼的码代码吧…不要放弃治疗, 代码不能停以上这篇在idea 中添加和删除模块Module操作就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

SpringBoot企业级开发教程教学大纲PDF版进店另有word版或PPT版

SpringBoot企业级开发教程教学大纲PDF版进店另有word版或PPT版
[难 点]
JDBC 身份认证 UserDetailsService 身份认证 自定义用户访问控制 自定义用户登录 CSRF 防护功能 Security 管理前端页面
[基本要求]
了解 Spring Boot 的默认安全管理 掌握自定义用户认证的实现 掌握自定义用户授权管理的实现 掌握 Security 实现页面控制的实现
[难 点]
Spring Boot 自动配置 Spring Boot 执行流程
[基本要求]
了解 Spring Boot 的发展和优点 掌握 Spring Boot 项目的构建 掌握 Spring Boot 的单元测试和热部署 熟悉 Spring Boot 的自动化配置原理 熟悉 Spring Boot 的执行流程
《Spring Boot 企业级开发教程》课程教学大纲
(课程英文名称)
课程编号: XXXX 学 分: 5 学分 学 时: 60 学时 (其中:讲课学时:38 上机学时:22) 先修课程:Java 基础案例教程、Java Web 程序设计任务教程、
Java EE 企业级应用开发教程(Spring+Spring MVC+MyBatis) 适用专业:信息及其计算机相关专业 开课部门:计算机系
[基本要求]
了解 MyBatis 的基础知识 熟悉 MyBatis 的工作原理 掌握 MyBatis 入门程序的编写
[实践与练习]
建议完成相关测试题,并安排上机,练习 Spring Boot 整合 Redis 实现
缓存管理,并进行相关组件定制。
第 7 章 Spring Boot 安全管理(8 学时)
[重 点]
application.properties 配置文件
application.yaml 配置文件 使用注解@ConfigurationProperties 和@Value 注入属性 两种注解对比分析 使用@Configuration 编写自定义配置类 使用 Profile 文件进行多环境配置 使用@Profile 注解进行多环境配置

JAVA基础开发环境vscode搭建Windows下VSCode编译运行简单java

JAVA基础开发环境vscode搭建Windows下VSCode编译运⾏简单javaJAVA 基础开发环境 vscode 搭建来源 https:///freewsf/p/7744728.html对于使⽤ Visual Studio Code 的 Java 开发者来说,扩展提供了⾮常好的语⾔特性⽀持,⽐如智能感知和项⽬⽀持等。

然⽽,我们也听到⼀些⽤户反馈需要调试 Java 程序。

今天,我们万分激动地宣布,我们与 Red Hat 合作开发了能让开发者调试 Java 应⽤程序的轻量级扩展:,它基于。

注意: Java Debugger for Visual Studio Code 和 Java Debug Server 都将在发布初始版后不久开放源码。

为了让 Java 开发者能尽快开始使⽤ VS Code,我们也创建了⼀个,它包含了和这两个扩展,这样你不需要单独去搜索安装这些扩展。

这是刚刚开始创建的⼀个现代 Java ⼯作流程,将来我们会往 Java 扩展包中添加更多特性和扩展。

开始从以下步骤开始:1. 在 Visual Studio Code 中打开扩展视图(Ctrl+Shift+X)。

2. 输⼊“java”以过滤扩展列表。

3. 找到并安装,如果你已经安装了,也可以单独找到并安装扩展。

你也可以直接从本⽂中安装 Java 扩展包:(安装了 VSCode 的情况下,点击上⾯的链接即可调⽤ VSCode 进⾏安装)重启 VSCode,打开包含 Java 项⽬的代码,然后按下⾯的步骤进⾏:1. 准备项⽬。

打开⼀个 .java ⽂件,Java 扩展会激活。

Maven、Gradle 和 Eclipse 项⽬都能得到⽀持。

这个扩展会⾃动构建项⽬,不需要⼿⼯触发构建。

2. 开始调试。

切换到调试视图(Ctrl+Shift+D),打开 launch.json 并添加 Java 调试配置。

3. 在 mainClass 中填⼊要启动的类,或者在 hostName 中填⼊要附加的主机名以及在 port 中填⼊端⼝。

Java实例化一个抽象类对象的方法教程

Java实例化⼀个抽象类对象的⽅法教程前⾔最近在学习的过程中,发现了⼀个问题,抽象类在没有实现所有的抽象⽅法前是不可以通过new来构建该对象的,但是抽象⽅法却是可以有⾃⼰的构造⽅法的。

这样就把我搞糊涂了,既然有构造⽅法,⼜不可以通过new来创建,那么抽象类在没变成具体类的时候究竟可不可以实例化呢?在Java 中抽象类是不能直接被实例化的。

但是很多时候抽象类的该特点成为⼀个⽐较⿇烦的阻碍。

例如如果我想使⽤动态代理来给⼀个抽象类赋予其执⾏抽象⽅法的能⼒,就会有两个困难:1. 动态代理只能创建实现接⼝的⼀个代理对象,⽽不能是⼀个继承抽象类的对象。

为此标准的 JVM 中有⼀些实现,例如 javassist 可以使⽤字节码⼯具来完成这⼀⽬的(ProxyFactory)。

在 Android 中如果想构造⼀个抽象类对象,恐怕只有 new ClassName() {} 或者继承之后构造了。

但是这两种⽅法都是不能由其Class 对象直接操作的,这就导致⼀些问题上达不到我们需要的抽象能⼒。

这⾥详细描述⼀下第⼀段所说的场景:⾸先有⼀个 interface ⽂件定义如下(熟悉 Android 的朋友可以看出这是⼀个提供给 Retrofit ⽣成代理对象的 Api 配置接⼝):public interface RealApi {@GET("api1")Observable<String> api1();@GET("api2")Observable<String> api2();@GET("api3")Observable<String> api3();//...其他⽅法}其次再写⼀个抽象类,只实现接⼝的其中⼀个⽅法(⽤来模拟接⼝数据):@MockApipublic abstract class MockApi implements RealApi {Observable<String> api3() {return Observable.just("mock data");}}然后我们需要有⼀个⼯具,例如 MockManager ,让他结合我们已存在的 RealApi 对象和 MockApi 类,来构造出⼀个混合对象,该对象在执⾏ MockApi 中已经定义的⽅法时,为直接执⾏,在 MockApi 没有定义该⽅法时,去调⽤ RealApi 的⽅法。

Java基础知识强化87:BigInteger类之BigInteger加减乘除法的使用

Java基础知识强化87:BigInteger类之BigInteger加减乘除法的使⽤1. BigInteger加减乘除法的使⽤1public BigInteger add(BigInteger val):加2public BigInteger subtract(BigInteger val):减3public BigInteger multiply(BigInteger val):乘4public BigInteger divide(BigInteger val):除5public BigInteger divideAndRemainder(BigInteger val):返回商和余数的数组2. 代码⽰例:1package cn.itcast_02;23import java.math.BigInteger;45/*6 * public BigInteger add(BigInteger val):加7 * public BigInteger subtract(BigInteger val):减8 * public BigInteger multiply(BigInteger val):乘9 * public BigInteger divide(BigInteger val):除10 * public BigInteger[] divideAndRemainder(BigInteger val):返回商和余数的数组11*/12public class BigIntegerDemo {13public static void main(String[] args) {14 BigInteger bi1 = new BigInteger("100");15 BigInteger bi2 = new BigInteger("50");1617// public BigInteger add(BigInteger val):加18 System.out.println("add:" + bi1.add(bi2));19// public BigInteger subtract(BigInteger val):加20 System.out.println("subtract:" + bi1.subtract(bi2));21// public BigInteger multiply(BigInteger val):加22 System.out.println("multiply:" + bi1.multiply(bi2));23// public BigInteger divide(BigInteger val):加24 System.out.println("divide:" + bi1.divide(bi2));2526// public BigInteger[] divideAndRemainder(BigInteger val):返回商和余数的数组27 BigInteger[] bis = bi1.divideAndRemainder(bi2);28 System.out.println("商:" + bis[0]);29 System.out.println("余数:" + bis[1]);30 }31 }运⾏效果如下:。

推荐五个java基础学习网站,小白必备

推荐五个java基础学习⽹站,⼩⽩必备不知道去哪找java基础资料?推荐⼏个学习⽹站,⼩⽩必备Java经过20多年的发展,仍然是世界上最受欢迎的编程语⾔之⼀,有⽆限多种⽅法使⽤Java。

拥有庞⼤的客户群。

并且java应⽤范围很⼴,基本只要与互联⽹有关的东西都能与java扯上关系,java于我们的⽣活息息相关,就像空⽓⼀般,存在于⾝边但让⼈不易发现,但偏偏让⼈们的⽣活离不开它。

所以学习Java的⼈也是很多的,我接下来推荐⼏个好⽤的java学习⽹站:1、菜鸟教程菜鸟教程可以说是很多⼈的⼊门⽹站,我当初就是看这个⼊门开始了解java的,⽽且没有⼴告。

2、HOW2J这个⽹站可以说是很良⼼了,界⾯简洁,资料齐全。

并且上⾯的java实例很有趣,图中可以看见⾯向对象的例⼦⽤的是英雄联盟的盖伦和⼩提莫,让⼈接受起来很快。

3、我要⾃学⽹我要⾃学⽹是别⼈推荐给我的,这个⽹站很成熟,资料也很齐全,但不是完全免费的,有的教程部分需要付费,但不能否认这是⼀个好⽹站的事实。

4、W3schoolW3school是⼀个类似菜鸟教程的学习⽹站,上⾯也有很多课程,既有免费的也有付费的,内容整齐的列表⼀览⽆余.内容品质⽆可挑剔,适合查缺补漏。

5、腾讯课堂上⾯提到的⽹站都很好,但是没有直播课,所以有⼀些知识点⽐较⽼,相较于别的平台,腾讯课堂上有很多直播课,学习java基础部分可以去上⾯每天蹭课。

除了上⾯的五个⽹站,学习java其实还有很多渠道,例如csdn博客等论坛,都是学习编程的好地⽅。

希望这⼏个⽹站能帮到⼤家,可能在学习了java的⼈群中这是⼈尽皆知的,但还是希望能帮到萌新⼩⽩,java⼤法好啊。

最后赘述⼀句,需要java资料的可以私信联系我,都是我⾃⼰积累的⼀些,希望能到⼤家。

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

是要和用户的真实信息联系在一起的,所以每个用户只能有一个帐务帐号,但可以对应多个业务帐号。

用户管理子系统就是对用户的帐务帐号和业务帐号进行管理。

具有用户管理权限的管理员登陆成功后,首先可以开通帐务帐号,帐务帐号必须和用户的一些真实信息关联起来,如用户的真实姓名,身份证号码,联系电话等。

开通时,由用户提供这些信息,然后由管理员将信息录入到系统中并保存下来。

对于开通好的帐务帐号也是由具有用户管理权限的管理员来管理的,如暂停帐务帐号,恢复帐务账号,删除帐务账号,修改用户真实信息等。

由于用户的一个帐务帐号会对应多个业务帐号,所以对账务账号的操作会级联影响关联的所有业务帐号。

2. 资费管理系统:
使用服务,就要交纳费用,这个系统中这个费用会和两个因素有关:一个是用户使用服务的时间长度;另一个是用户选择的收费标准,如月租费为:30元,每小时使用费为:3元等。

这个收费的标准在本系统中称为资费。

资费管理子系统就是用来管理资费的。

具有资费管理权限的管理员登陆成功后,可以添加新的资费,查询所有的资费,可以修改现有的资费信息,还可以删除资费。

3. 管理员管理系统:
对本系统的各个子系统的访问都是受权限控制的,只有拥有了访问权限,才能使用子系统。

在本系统中存在着三类使用者:其一是用户,他们默认具有使用用户自服务系统的权限。

其二是超级管理员,即对本系统进行管理的人,并具有最高的管理权限,他可以使用除用户自服务以外的所有子系统。

这个超级管理员只有一个,是系统初始建立时就提供好的。

其三是普通管理员,即对本系统中的部分子系统进行管理的人,这些人是由超级管理员进行管理的,他们具有的权限也是由超级管理员赋予的。

管理员管理系统就是超级管理员来管理普通管理员。

超级管理员登陆成功后,可以增加新的普通管理员,同时为他分配一些权限,可以修改普通管理员的信息,可以查询所有的管理员信息,可以删除某些管理员。

4. 账单查询系统:
具有帐单查询权限的管理员可以利用此子系统对所有用户的月账单进行查询。

此子系统不仅提供对某个帐务帐号上产生的总的费用进行查询:
具有账单查询角色的管理员进入本系统,登录成功后,可以执行如下查询操作:
根据输入的月份查询所有用户这个月的费用信息(提供分页显示)。

根据输入的月份和其它组合条件查询符合条件的用户这个月的费用信息(提供分页显示)。

根据输入的月份和用户的帐务帐号的用户名查询某个用户这个月的费用信息。

具有账单查询角色的管理员进入本系统,登录成功后,首先查询出用户帐务帐号的合计费用信息,然后在这个信息上执行查询明细帐的操作,系统会显示该帐务帐号上所有业务帐号上发生的所有费用的明细信息。

5. 帐务服务系统:
具有帐务查询的管理员可以使用此子系统对开放实验室的使用情况进行查询。

此子系统可以提供以月为周期的查询,也可以提供以年为周期的查询。

具体操作如下:
月帐务查询: 根据输入的月份查询被使用的总的时长信息。

年帐务查询: 根据输入的年份查询所有开放实验室这一年被使用的总的时长信息。

6. 权限管理系统:
对本系统的各个子系统的访问都是受权限控制的,权限决定了使用者可以执行的操作,如一个使用者拥有用户管理权限,他就可以执行用户管理的操作。

目前系统已有的权限包括:用户管理权限,资费管理权限,管理员管理权限,帐单管理权限,帐务管理权限,用户自服务权限,权限管理权限。

今后,系统可能会扩展新的功能,也就会增加新的操作,这个操作就要对应一种新的权限;也有可能删除一项不再被使用的操作,这样,对应的权限也应该被删除。

因此,为了对权限能够进行灵活的管理,本系统中就提供了权限管理系统。

在本系统中,一些使用者拥有相同的角色,拥有相同的权限,如张三和李四都是前台操作人员,都拥有用户管理权限和帐单管理权限。

角色代表着一组权限的集合。

目前系统中已有的角色包括:用户和超级管理员。

今后,要想根据需要灵活地管理角色,也是通过权限管理系统完成的。

前台用户服务系统
用户自服务系统可以方便地供用户查询自己的账单和修改自己的个人信息。

这个子系统是唯一的一个用户可以使用的子系统。

具体操作如下:
1. 查询自己的月帐单
用户进入本系统,使用自己的帐务帐号登录成功后,可以执行如下查询操作:根据输入的月份查询自己这个月的费用信息;在上一个查询的基础上查看这个月费用明细。

2. 修改自己的个人信息
用户进入本系统,使用自己的帐务帐号登录成功后,可以自行修改自己的个人信息。

免费赠送以下课程(选修):周末+晚上
5天SunJava训练营开课前,对于学习软件有困难的学员,增加40学时免费课前辅导
20天周末名家大讲堂1. Java核心知识面试指导-1
2. Java核心知识面试指导-2
3. Java程序性能调优
4. JDK高级特性(NIO、同步包、安全相关)
5. Oracle数据访问优化策略
6. 大规模Web应用系统优化策略
7. Ext-js核心编程-1
8. Ext-js核心编程-2
9. Ibatis框架
10. 工作流框架JBMP-1
11. 工作流框架JBMP-2
12. SOA基础技及其应用
13. 云计算及其应用
14. 构建企业级框架
15. 通用电子商务平台业务分析解决方案
16. 物流系统业务分析及解决方案
17. 电信计费系统业务分析及解决方案
18. 搜索引擎技术
19. Loadruner压力测试技术
20. 程序员面试指导。

相关文档
最新文档