重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
package s1;//包名可以不要//
创新互联公司是一家专注于网站建设、成都网站建设与策划设计,龙湾网站建设哪家好?创新互联公司做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:龙湾等地区。龙湾做网站价格咨询:18982081108
public class s1{
public static void main(String[]args) {
double a,b,c,sum=0;//因为有小数所以是double类型//
while(true){
for(a=2;a=20;a++) {
c=(1/a);//计算每一次循环的结果//
sum=sum+c;//累计每一次的//
}
sum=sum+1;//加上1//
System.out.println(+sum);//输出结果//
break;//结束while循环//
}
}
}
循环结果为:3.5977396571436824
在JDK(Java Development Kit)类库中,开发人员使用了大量设计模式,正因为如此,我们可以在不修改JDK源码的前提下开发出自己的应用软件,研究JDK类库中的模式实例也不失为学习如何使用设计模式的一个好方式。
创建型模式:
(1) 抽象工厂模式(Abstract Factory)
• Java.util.Calendar#getInstance()
• java.util.Arrays#asList()
• java.util.ResourceBundle#getBundle()
• java.NET.URL#openConnection()
• java.sql.DriverManager#getConnection()
• java.sql.Connection#createStatement()
• java.sql.Statement#executeQuery()
• java.text.NumberFormat#getInstance()
• java.lang.management.ManagementFactory (所有getXXX()方法)
• java.nio.charset.Charset#forName()
• javax.xml.parsers.DocumentBuilderFactory#newInstance()
• javax.xml.transform.TransformerFactory#newInstance()
• javax.xml.xpath.XPathFactory#newInstance()
(2) 建造者模式(Builder)
• java.lang.StringBuilder#append()
• java.lang.StringBuffer#append()
• java.nio.ByteBuffer#put() (CharBuffer, ShortBuffer, IntBuffer,LongBuffer, FloatBuffer 和DoubleBuffer与之类似)
• javax.swing.GroupLayout.Group#addComponent()
• java.sql.PreparedStatement
• java.lang.Appendable的所有实现类
(3) 工厂方法模式(Factory Method)
• java.lang.Object#toString() (在其子类中可以覆盖该方法)
• java.lang.Class#newInstance()
• java.lang.Integer#valueOf(String) (Boolean, Byte, Character,Short, Long, Float 和 Double与之类似)
• java.lang.Class#forName()
• java.lang.reflect.Array#newInstance()
• java.lang.reflect.Constructor#newInstance()
(4) 原型模式(Prototype)
• java.lang.Object#clone() (支持浅克隆的类必须实现java.lang.Cloneable接口)
(5) 单例模式 (Singleton)
• java.lang.Runtime#getRuntime()
• java.awt.Desktop#getDesktop()
结构型模式:
(1) 适配器模式(Adapter)
•java.util.Arrays#asList()
•javax.swing.JTable(TableModel)
•java.io.InputStreamReader(InputStream)
•java.io.OutputStreamWriter(OutputStream)
•javax.xml.bind.annotation.adapters.XmlAdapter#marshal()
•javax.xml.bind.annotation.adapters.XmlAdapter#unmarshal()
(2) 桥接模式(Bridge)
• AWT (提供了抽象层映射于实际的操作系统)
•JDBC
(3) 组合模式(Composite)
•javax.swing.JComponent#add(Component)
•java.awt.Container#add(Component)
•java.util.Map#putAll(Map)
•java.util.List#addAll(Collection)
•java.util.Set#addAll(Collection)
(4) 装饰模式(Decorator)
•java.io.BufferedInputStream(InputStream)
•java.io.DataInputStream(InputStream)
•java.io.BufferedOutputStream(OutputStream)
•java.util.zip.ZipOutputStream(OutputStream)
•java.util.Collections#checked[List|Map|Set|SortedSet|SortedMap]()
(5) 外观模式(Facade)
•java.lang.Class
•javax.faces.webapp.FacesServlet
(6) 享元模式(Flyweight)
•java.lang.Integer#valueOf(int)
•java.lang.Boolean#valueOf(boolean)
• java.lang.Byte#valueOf(byte)
•java.lang.Character#valueOf(char)
(7) 代理模式(Proxy)
• java.lang.reflect.Proxy
•java.rmi.*
行为型模式:
(1) 职责链模式(Chain of Responsibility)
•java.util.logging.Logger#log()
•javax.servlet.Filter#doFilter()
(2) 命令模式(Command)
• java.lang.Runnable
• javax.swing.Action
(3) 解释器模式(Interpreter)
• java.util.Pattern
• java.text.Normalizer
• java.text.Format
• javax.el.ELResolver
(4) 迭代器模式(Iterator)
• java.util.Iterator
• java.util.Enumeration
(5) 中介者模式(Mediator)
• java.util.Timer (所有scheduleXXX()方法)
• java.util.concurrent.Executor#execute()
• java.util.concurrent.ExecutorService (invokeXXX()和submit()方法)
• java.util.concurrent.ScheduledExecutorService (所有scheduleXXX()方法)
•java.lang.reflect.Method#invoke()
(6) 备忘录模式(Memento)
•java.util.Date
•java.io.Serializable
•javax.faces.component.StateHolder
(7) 观察者模式(Observer)
•java.util.Observer/java.util.Observable
•java.util.EventListener (所有子类)
•javax.servlet.http.HttpSessionBindingListener
•javax.servlet.http.HttpSessionAttributeListener
•javax.faces.event.PhaseListener
(8) 状态模式(State)
•java.util.Iterator
•javax.faces.lifecycle.LifeCycle#execute()
(9) 策略模式(Strategy)
• java.util.Comparator#compare()
• javax.servlet.http.HttpServlet
• javax.servlet.Filter#doFilter()
(10) 模板方法模式(Template Method)
•java.io.InputStream, java.io.OutputStream, java.io.Reader和java.io.Writer的所有非抽象方法
•java.util.AbstractList, java.util.AbstractSet和java.util.AbstractMap的所有非抽象方法
•javax.servlet.http.HttpServlet#doXXX()
(11) 访问者模式(Visitor)
•javax.lang.model.element.AnnotationValue和AnnotationValueVisitor
•javax.lang.model.element.Element和ElementVisitor
•javax.lang.model.type.TypeMirror和TypeVisitor
1、首先西药选中主界面中的备忘录,选中旁边的“+”号图标。
2、其次点击下面的“Aa”将备忘录中的光标放在需要编写代码的那一行。
3、最后点击下方的运行功能按钮就可以运行代码了。
1.确定数格式,编写记录类
Record{
//记录编号
private int id;
//提醒时间
private Time t;
//提醒信息
private String info;
}
2.确定数据访问方式,可以通过文件也可以通过数据库。
写一个数据访问类,例如用文件的形式
DataAccesser{
private static syncronized File file;
//构造函数,进行file初始化
public static DataAccesser(){
}
//写入记录
public static void write(Record){
}
//根据时间读取记录
public static Record read(int id){
}
//根据时间读取记录集
public static ListRecord readSet(Time t){
}
}
3.定义存取信息队列的类
class MessageQueue{
//保存当前时刻以后的所有信息的时间队列,安顺序
private syncronized static ListTime;
//插入队列
public static void put(){
//需要按时间顺序插入
}
//获得当前时间前的时间集
public static ListTime get(){
//获得后需要将得到的时间从列表中删除
}
}
4.编写提醒类,用于提醒
class Reminder{
public void run(){
ListTime tl=getCurrentTime();
//查询出所有
需要提醒的记录调用remind()方法进行提醒
}
//提醒
protected void remind(Record r){
//这里写如何提醒
}
//获得当前时间
protected Time getCurrentTime(){
}
}
5.定时器类,
//提醒的主运行类
class Main{
static Thread thread;
public Main(){
thread=new Thread(){
public void run(){
while(true){
new Reminder().run();
try{
Thread.sleep(60000);
}catch(Exception e ){}
}
}
}
public static void start(){
thread.start();
}
public sattic void stop(){
thread.stop();
}
}
}
只是个框架,具体代码自己完成吧,可以查询相关的API。
在备忘录简单炫酷代码写法:
1、选中主界面中的备忘录。
2、选中旁边的+号图标。
3、然后点击下面的Aa。
4、将备忘录中的光标放在需要编写代码的那一行,点击下方的书写功能按钮就可以写代码了。