导航:首页 > 编程语言 > java软件实例

java软件实例

发布时间:2023-04-08 05:46:19

java 中 单实例和多实例是指的什么

简单的说单例就是
只能有一个实例,所以地方用到的实例都是同一个。
就好像家人吃饭,桌子是单例的,大家用的是同一个。而碗是多例的,每人都有自几的。
下面是具体的例子:
Java模式之单例模式:

单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。

特点:

1,一个类只能有一个实例

2,自己创建这个实例

3,整个系统都要使用这个实例

例:
在下面的对象图中,有一个"单例对象",而"客户甲"、"客户乙"
和"客户丙"是单例对象的三个客户对象。可以看到,所有的客户对象共享一个单例对象。而且从单例对象到自身的连接线可以看出,单例对象持有对自己的引用。

Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。在很多操作中,比如建立目录
数据库连接都需要这样的单线程操作。一些资源治理器经常设计成单例模式。

外部资源:譬如每台计算机可以有若干个打印机,但只能有一个Printer
Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干个通信端口,系统应当集中治理这些通信端口,以避免一个通信端口被两个请求同时调用。内部资源,譬如,大多数的软件都有一个(甚至多个)属性文件存放系统配置。这样的系统应当由一个对象来治理这些属性文件。一个例子:Windows
回收站。
在整个视窗系统中,回收站只能有一个实例,整个系统都使用这个惟一的实例,而且回收站自行提供自己的实例。因此,回收站是单例模式的应用。
两种形式:
1,饿汉式单例类
public
class
Singleton
{
private
Singleton(){}
//在自己内部定义自己一个实例,是不是很希奇?

//注重这是private
只供内部调用
private
static
Singleton
instance
=
new
Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问

public
static
Singleton
getInstance()
{

return
instance;

}
}
2,懒汉式单例类
public
class
Singleton
{
private
static
Singleton
instance
=
null;
public
static
synchronized
Singleton
getInstance()
{
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次

//使用时生成实例,提高了效率!

if
(instance==null)

instance=new
Singleton();

return
instance;
}
}
第二中形式是lazy
initialization,也就是说第一次调用时初始Singleton,以后就不用再生成了。
注重到lazy
initialization形式中的synchronized,这个synchronized很重要,假如没有synchronized,那么使用getInstance()是有可能得到多个Singleton实例。
一般来说第一种比较安全。进入讨论组讨论。

❷ Java类的实例化顺序是什么样的Java线程同步的方式有哪些

引言:java是在1990年初 ,被詹姆斯•高斯林等人开发的一门面向对象的编程语言。起初,java被称为0ak,来经过发展0ak改名为java,与1995年的五月份正式向大家发布。

一、java类的实例化顺序

java的实例化顺序在继承没有的情况

单独一个类的场景下,初始化顺序为依次为静态数据,继承的基类的构造函数,成员变量,被调用的构造函数。

其中静态数据只会初始化一次。(静态数据包括静态代码块和静态变量,每个类的静态数据只会初始化一次)

在继承的情况下

添加两个基类,让继承父亲,父亲继承祖父。

继承的情况就比较复杂了。由继承了基类,还将往上回溯,递归地调用基类的无参构造方法。

在我们的例子中,在初始化静态数据后,会先往上追溯,调用父的默认构造方法,此时再往上追溯到爷爷的默认构造方法。


无论是java还是什么别的东西他都体现了现代社会与信息技术的不断发展,人们在进行进行技术开发时也有了越来越多的方法。程序类的工作也有了更为快捷的方法,这为信息技术的发展也提供了更好的发展方法

❸ 用 java 编写一个 基于Web Service的软件

1.首先说一下两个开发webservices的工具包:axis 和XFire 本人首先接触的是axis。
两者比较如下:
相对于Axis来说,目前XFire相对受欢迎,加上其提供了和Spring集成的支持,在目前的Web Service开源社区拥有众多的追随者。并且因为XFire为Spring提供的支持,使得我们可以很容易在Spring中使用XFire构建Web Service应用。
知道了这两个框架你研究起来也就不难了。
下面我就基于xfire说一下开发说明:
xfire对WebServices的开发非常方便,在Eclipse里开发就更方便了。总结起来有这么几点:
1.编写类,跟普通JAVABEAN没什么区别。
2.配置文件
如果是要深层次的去理解WebServices还需努力,下面是我给你找的一个网上的例子作为参考:

使用XFire+Spring构建Web Service
XFire是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用。
相 对于Axis来说,目前XFire相对受欢迎,加上其提供了和Spring集成的支持,在目前的Web Service开源社区拥有众多的追随者。并且因为XFire为Spring提供的支持,使得我们可以很容易在Spring中使用XFire构建Web Service应用。
XFire与Axis2相比具有如下特征:
l 支持一系列Web Service的新标准--JSR181、WSDL2.0 、JAXB2、WS-Security等;
l 使用Stax解释XML,性能有了质的提高。XFire采用Woodstox 作Stax实现;
l 容易上手,可以方便快速地从pojo发布服务;
l 支持Spring、Pico、Plexus、Loom等容器;
l 灵活的Binding机制,包括默认的Aegis,xmlbeans,jaxb2,castor;
l 高性能的SOAP 栈设计;
l 支持Spring、Pico、Plexus、Loom等容器。
XFire与Axis1性能的比较如下:
l XFire比Axis1.3快2-6倍;
l XFire的响应时间是Axis1.3的1/2到1/5。
XFire在WebService框逗誉架山芦段中开始较晚,它从现有的框架中借鉴了许多优秀的理念,力争将Web Service的应用开发难度降到最低。此外,还提供了各种绑定技术、支持多种传输协议,对WebService体系中许多新的规范提供了支持。
下面让我们来看一个XFire于Spring集成的helloWorld的简单例子。
一.实现的功能和特点
本例具有如下功能和特点:
1) 基于J2EE平台的Web Service服务;
2) 开发方便,配置简单;
3) 与spring无缝集成。
XFire是完全基于流数据处理进行工作的系统,这意味着XFire不是将整个SOAP文档缓存在内存中,而是以管道的方式接收SOAP流数据。这种工作方式的哗悔转变带来了可观的性能回报,同时节省了内存的占用。
XFire从 管道中接收一个SOAP请求到返回一个SOAP响应,会经历一系列的阶段。在管道调用的任何一个阶段,XFire都可以添加一些额外的Handler,在 对消息进行加工处理后再传入到下一个阶段中。在SOAP请求消息对Web Service发起真正调用之前,分别会经过传输、预转发、转发、策略实施、用户信息处理、预调用、服务调用等阶段。
二.开发环境
笔者的开发环境描述如下:
1) jdk: 1.5版本;
2) Tomcat:5.5.20;
3) MyEclipse:5.1.1 GA。
三.开发步骤

1. 工程与环境的建立
在MyEclipse 中新建Web工程,名为webservice_helloworld。选择该工程后,点击右键选择MyEclipse->Add Web Service Capabilities,弹出Add Web Service Capabilities对话框,点击“Next”,弹出Project Library Configuration对话框,默认选择Core Libraries,点击“Finish”按钮,完成XFire核心包的添加。为了后续的客户端的测试,还需读者加入commons- httpclient.jar包到WEB-INF/lib下。
部署后可看到此时WEB-INF/lib的jar包列表如下:
activation-1.1.jar、commons -beanutils-1.7.0.jar、commons-codec-1.3.jar、commons-httpclient.jar、 commons-logging-1.0.4.jar、jaxen-1.1-beta-9.jar、jaxws-api-2.0.jar、jdom- 1.0.jar、jsr173_api-1.0.jar、mail-1.4.jar、saaj-api-1.3.jar、saaj-impl- 1.3.jar、spring-1.2.6.jar、stax-api-1.0.1.jar、wsdl4j-1.5.2.jar、wstx-asl- 3.0.1.jar、xbean-2.1.0.jar、xbean-spring-2.5.jar、xfire-aegis-1.2.2.jar、 xfire-annotations-1.2.2.jar、xfire-core-1.2.2.jar、xfire-java5-1.2.2.jar、 xfire-jaxws-1.2.2.jar、xfire-jsr181-api-1.0-M1.jar、xfire-spring- 1.2.2.jar、XmlSchema-1.1.jar
为了后续的开发和测试,在src目录下分别建立test和webservice目录,分别用于存放测试文件和webservice的相关类。
2.Web Service实现的编写
在本例中,我们只是做一个helloWorld的简单例子。Web Service服务端提供一个根据输入的名字信息回复相应的helloWorld信息的。例如,当名字为“阿蜜果”时,恢复信息为“hello,阿蜜果”。下面让我们一步一步来开始进行编码。
1)web.xml的配置
一 般情况下,我们通过HTTP作为Web Service的传输协议,这样我们只需启动一个Web服务器(如Tomcat,在本例中使用的是Tomcat5.5.20),这样客户端就可以通过 HTTP访问到Web Service服务。为了集成Spring容器,XFire专门提供一个XFireSpringServlet,我们可以在web.xml中配置该 Servlet,将Spring容器中定义的Web Service在某个URI下发布。
为了能正确使用XFire,需在web.xml中进行相应配置,在该文件中配置XFire的servlet和servlet-mapping。同时因为本实例需要将XFire集成到Spring中,因而需要在web.xml文件中加载Spring的相应配置文件。在本实例中,我们首先在WEB-INF下建立两个配置Spring配置文件,一个为applicationContext.xml,该文件用来定义本工程的bean,一个为xfire-servlet.xml,用来配置XFire的相关bean。修改后的web.xml的内容如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>XFireService</display-name>
<!-- begin Spring配置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml,/WEB-INF/xfire-servlet.xml</param-value>
</context-param>
<listener>
<listener-class> org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class> org.springframework.web.util.IntrospectorCleanupListener
</listener-class>
</listener>
<!-- end Spring配置 -->

<!-- begin XFire 配置 -->
<servlet>
<servlet-name>xfire</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>xfire</servlet-name>
<url-pattern>*.ws</url-pattern>
</servlet-mapping>
<servlet>
<!-- 配合Spring容器中XFire一起工作的Servlet-->
<servlet-name>xfireServlet</servlet-name>
<servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>xfireServlet</servlet-name>
<!-- 在这个URI下开放Web Service服务 -->
<url-pattern>/service/*</url-pattern>
</servlet-mapping>
<!-- end XFire 配置 -->
</web-app>

2)Web Service的接口类HelloWorld.java和对应实现类HelloWorldImpl.java

为了用Web Service完成HelloWorld功能,我们首先在src/webservice目录下建立接口类HelloWold.java。它仅包含一个sayHelloWorld(String name)的方法,其详细内容如下:

package webservice;

/** *//**
*HelloWorld的接口类.
*/
publicinterface HelloWorld {
/** *//**
*对名字为name的人打招呼.
*@paramname名字
*@return返回打招呼的字符串
*/
String sayHelloWorld(String name);
}
我们还需要建立一个对应的实现类,来实现sayHelloWorld的功能,该实现类即为HelloWorldImpl.java。该类的详细内容如下:
package webservice;
/** *//**
*HelloWorld的实现类.
*/
publicclass HelloWorldImpl implements HelloWorld {
public String sayHelloWorld(String name) {
String helloWorld = "hello," + name;
return helloWorld;
}
}

3)Spring配置文件applicationContext.xml和xfire-servlet.xml的配置

首先我们在applicationContext.xml文件中配置对应的bean——HelloWorldBean,该xml文件的内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="HelloWorldBean" class="webservice.HelloWorldImpl"/>
</beans>
这个配置文件很简单,在此不详述。

XFire为Spring 提供了方便易用的导出器XFireExporter,借助该导出器的支持,我们可以在Spring容器中将一个POJO导出为Web Service。HelloWorld是业务服务类,在此拥有一个sayHelloWorld的方法,我们希望将此方法开放为Web Service。在实际应用中,如果某个类具有众多的方法,而其中的某些方法不需要开放为Web Service的情况下,我们可以定义一个窄接口,该接口中只需定义那些开放为Web Service的业务方法。

将一个业务类所有需要开放为Web Service的方法通过一个窄接口来描述是值得推荐的作法,这让Web Service的接口显得很“干净”。其次,XFire的导出器也需要服务接口的支持,因为它采用基于接口的动态代理技术。

窄接口中的方法在真实的系统中可能需要引用其它的业务类或DAO获取数据库中的真实数据,为了简化实例,我们在此简化了实例。

下面让我们看看在xfire-servlet.xml文件中导出器的设置,该文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 引入XFire预配置信息 -->
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />
<!—定义访问的url-->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/HelloWorldService.ws">
<ref bean="HelloWorldService" />
</entry>
</map>
</property>
</bean>

<!-- 使用XFire导出器 -->
<bean id="baseWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter" lazy-init="false" abstract="true">
<!-- 引用xfire.xml中定义的工厂 -->
<property name="serviceFactory" ref="xfire.serviceFactory" />
<!-- 引用xfire.xml中的xfire实例 -->
<property name="xfire" ref="xfire" />
</bean>
<bean id="HelloWorldService" parent="baseWebService">
<!-- 业务服务bean -->
<property name="serviceBean" ref="HelloWorldBean" />
<!-- 业务服务bean的窄接口类 -->
<property name="serviceClass" value="webservice.HelloWorld" />
</bean>
</beans>

在 上面的配置中,我们可以看到,在该配置文件中引入了xfire.xml这个Spring配置文件。它是在XFire核心JAR包中拥有一个预定义的 Spring配置文件,它定义了XFire在Spring中必须用到的一些Bean和资源,需要引入这个预定义的配置文件。从该配置文件中可以看出,我们 通过XFireExporter将业务类导出为Web Service,对于任何导出器,我们都需要引入XFire环境,即serviceFactory和xfire,这是标准的配置。ServiceFactory是XFire的核心类,它可以将一个POJO生成为一个Web Service。

在本实例中,我们通过定义一个baseWebService,其余的webService配置都将该bean作为父bean,这样可以简化Spring的配置,不需要多次引入serviceFactory和xfire。

3. Web Service的测试

在上一步操作完成之后,我们的这个简单的Web Service已经编写完毕,下面让我们来看看自己的劳动成果吧。

在浏览器中输入地址:http://localhost:8080/webservice_helloworld/HelloWorldService.ws?wsdl,我们可以看到HelloWorldService对应的WSDL信息,阅读这个WSDL文档,我们可以知道HelloWorld的sayHelloWorld方法已经被成功地发布为Web Service了。只要拿到这个WSDL就可以开发相应的客户端调用程序了。

XFire为访问服务端Web Service提供了各种方便的方式:我们一般根据服务地址和窄接口类创建客户调用程序。

在不能获得服务窄接口类的情况下,XFire允许我们通过WSDL文件生成客户端调用程序,通过指定服务接口的方式调用服务。

1)通过WSDL文件生成客户端调用程序

首先我们通过http://localhost:8080/webservice_helloworld/HelloWorldService.ws?wsdl我们可以获得WSDL文件HelloWorldService.wsdl,并将其放在src目录下面,接着我们通过程序访问该WSDL文件,并调用需测试的方法。此时测试类WebServiceClientTest.java的内容如下所示:

package test;

import org.codehaus.xfire.client.Client;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import webservice.HelloWorld;

/** *//**
*Copyright2007GuangZhouAmigo.
*Allrightreserved.
*HelloWorld的webservice的测试类.
*@author<a href="mailto:[email protected]">AmigoXie</a>
*@version1.0
*Creationdate:2007-9-16-下午05:36:05
*/
publicclass WebServiceClientTest {
HelloWorld helloWorld = null;

publicstaticvoid main(String[] args) throws Exception {
WebServiceClientTest test = new WebServiceClientTest();
test.testClient();
}

publicvoid testClient() throws Exception {
String wsdl = "HelloWorldService.wsdl"; //对应的WSDL文件
Resource resource = new ClassPathResource(wsdl);
Client client = new Client(resource.getInputStream(), null); //根据WSDL创建客户实例

Object[] objArray = new Object[1];
objArray[0] = "阿蜜果";
//调用特定的Web Service方法
Object[] results = client.invoke("sayHelloWorld", objArray);
System.out.println("result: " + results[0]);
}
}
运行该类,可得到如下输出结果:

result: hello,阿蜜果

可看出运行结果正确。

2)根据服务地址创建客户端调用程序

接着让我们来看一个根据服务地址创建客户端调用程序的例子。我们可以通过测试类来测试Web Service的正确性,下面让我们来看一个简单的测试类,首先我们在src/test目录建立WebServiceClientTest.java文件,并在src目录下建立客户端调用的Spring配置文件client.xml。在client.xml配置文件中我们定义了一个testWebService的bean,该bean访问wsdlDocumentUrl为http://localhost:8080/webservice_helloworld/HelloWorldService.ws?wsdl的WSDL。该xml文件的详细内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="testWebService" class="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean">
<property name="serviceClass">
<value>webservice.HelloWorld</value>
</property>
<property name="wsdlDocumentUrl">
<value>http://localhost:8080/webservice_helloworld/HelloWorldService.ws?wsdl</value>
</property>
</bean>
</beans>

在WebServiceClientTest.java文件中获得HelloWorld,并调用它的sayHelloWorld方法来完成测试,该类的详细内容如下所示:

package test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.;
import webservice.HelloWorld;

/** *//**
*HelloWorld的webservice的测试类.
*/
publicclass WebServiceClientTest {
HelloWorld helloWorld = null;

publicstaticvoid main(String[] args) {
WebServiceClientTest test = new WebServiceClientTest();
test.testClient();
}

publicvoid testClient() {
ApplicationContext ctx = new (
"client.xml");
helloWorld = (HelloWorld) ctx.getBean("testWebService");
System.out.println(helloWorld.sayHelloWorld("阿蜜果"));
}
}

在启动webservice_helloworld工程的情况下,运行WebServiceClientTest类,可看到控制台包含如下信息:

hello,阿蜜果

由此可看出调用Web Service成功。

四.总结

与Axis 相比,在实施Web Service时XFire更加简洁高效,并且XFire对Spring提供了强大的支持,可以非常方便地在Spring中使用XFire实施Web Service,因此XFire在短短的时间里成为了受Web Service开发者喜爱的框架。

XFire为客户端提供了多种访问Web Service的方式,如果可以获取客户端的窄接口类,则可以采用窄接口类调用Web Service。如果仅能获取WSDL,XFire也可以采用动态反射的机制调用Web Service。XFire为Eclipse提供了一个可以根据WSDL生成客户端存根代码的插件,相信XFire也将为其它非Java语言提供类似的插 件。

在Axis2中也开始使用Stax来处理XML,还有Xfire不支持WSDL2.0, 而Axis2支持WSDL2.0。
还可使用Xfire的后续版本,Apache CXF (相当于 Xfire2.0).

❹ 求一个简单的Java实例

package tmp;

import java.awt.BorderLayout;

public class ShowIcon extends JFrame {

private JPanel contentPane;

/**
* Launch the application.
*/
public static void main(String[] args) {
ShowIcon frame = new ShowIcon();
frame.setVisible(true);
}

/**
* Create the frame.
*/
public ShowIcon() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);

JLabel lbl = new JLabel("New label");
contentPane.add(lbl, BorderLayout.CENTER);
ImageIcon icon=new ImageIcon(getClass().getResource("/abc.jpg"));
lbl.setIcon(icon);
}

}
//图春或片abc.jpg放到源代码文件滚森雀下 一大早般为src

❺ 如何编写你的第一个Java程序 3种方法来编写你的第一个Java程序

目录方法1:编写你的第一个Java程序1、要开始用Java编写程序,先设置你的工作环境。2、任何一种类似记事本的程序都能够用于Java编程。3、确保安装了Java软件开发工具包方法2:Hello World 程序1、我们将首先创建一个能打印"Hello World"的程序。2、声明类和main方法。3、编写将打印出"Hello World"的代码行。4、把这些都放在一起。5、保存文件,并打开命令提示符或终端来编译程序。6、运行程序。7、恭喜,你方法3:输入和输出1、我们现在将扩展我们的Hello World程序,以接受用户的输入。2、导入Scanner(扫描仪,由于编程时使用Scanner,故下文用Scanner)类。3、在main方法中,创建Scanner对象的一个新实例(instance)。4、提示用户输入。5、要求Scanner对象接受用户键入的下一行,并将其存储在变量中。6、向用户显示问候语。7、一起保存以上代码。8、编译并运行。Java是James Gosling于1995年创建的一种面向对象的编程语言,它用“字段”(fields,描述对象的属性),和“方法”(methods,对象可以执行的操作),将概念表示为“对象”(objects)。Java是一种“编写一次,就可以在任何地方运行”的编程语言,可以在任何装有Java虚拟机(JVM)的平台上运行。由于Java是一种用上大量英文单词的编程语言,母语为英语的初学者很容易学习和理解,非英语母语者只要下一番苦功也能很快上手。本教程介绍如何用Java编写程序。
方法1:编写你的第一个Java程序
1、要开始用Java编写程序,先设置你的工作环境。许多程序员使用集成开发环境(Integrated Development Environment,IDE)进行Java编程,比如Eclipse和NetBeans。但是不必使用臃肿的IDE,也可以编写Java程序并编译它。
2、任何一种类似记事本的程序都能够用于Java编程。高级程序员有时更喜欢使用终端内的文本编辑器,如Vim和Emacs。我们推荐一个可以安装在基于Windows和Linux系统(Mac、Ubuntu等)的文本编辑器:SublimeText。我们将在本教程中使用它。
3、确保安装了Java软件开发工具包。你要用它来编译程序。在基于Windows的操作系统中,如果环境变量不正确,则可能在运行javac时出错。有关JDK安装的详细信息,可以参阅如何安装Java软件开发工具包,以避免此错误。
方法2:Hello World 程序
1、我们将首先创建一个能打印"Hello World"的程序。在文本编辑器中,创建一个新文件,并将其另存为"HelloWorld.java"。HelloWorld是类名,你需要让类名与文件同名。
2、声明类和main方法。main方法 public static void main(String[] args)是程序运行时执行的方法。这个main方法在每个Java程序中都以相同方式调用。
public class HelloWorld { public static void main(String[] args) { }}
3、编写将打印出"Hello World"的代码行。
System.out.println("Hello World.");让我们看看这一行的组成成分:System 告诉系统执行某些操作。
out 告诉系统我们要输出一些内容。
println ?代表"打印行(print line)",我们用它告诉系统在输出中打印一行文字。
("Hello World.") 周围的圆括号表示方法 System.out.println()接受一个参数。在本例中,该参数是字符串"Hello World."
注意,Java中有一些我们必须遵守的规则:必须始终在每行末尾添加分号。
Java区分大小写,因此必须以正确的大小写写入方法名、变量名和类名,否则将出现错误。
某个方法或循环的特定代码块包含在花括号中。
4、把这些都放在一起。最后Hello World程序应如下所示:
public class HelloWorld { public static void main(String[] args) {System.out.println("Hello World."); }}
5、保存文件,并打开命令提示符或终端来编译程序。打开保存HelloWorld.java的文件夹,并键入javac HelloWorld.java。这告诉Java编译器你想要编译HelloWorld.java。如果有错误,编译器会告诉你做错了什么。否则,你不应该看到来自编译器的任何消息。如果现在查看helloworld.java所在的目录,应该会看到helloworld.class。这是Java用来运行程序的文件。
6、运行程序。我们终于可以运行我们的程序了! 在命令提示符或终端中,键入java HelloWorld。这是在告诉Java你想运行HelloWorld类。你应该看到控制台出现 "Hello World"。
7、恭喜,你完成了第一个Java程序!
方法3:输入和输出
1、我们现在将扩展我们的Hello World程序,以接受用户的输入。在我们的Hello World程序中,我们打印出一个字符串供用户查看,但是只有当程序能够接收用户输入信息,才能称之为程序的交互功能。我们现在将扩展程序,提示用户输入他或她的名字,然后用名字问候用户。
2、导入Scanner(扫描仪,由于编程时使用Scanner,故下文用Scanner)类。在Java中,我们有一些可以访问的内置库,但是我们必须导入它们。其中一个库是java.util,它包含我们获取用户输入所需的Scanner对象。为了导入Scanner类,我们在代码的开头添加了以下行。
import java.util.Scanner;这告诉程序我们想使用java.util包中的Scanner对象。
如果希望访问java.util包中的每个对象,只需在代码的开头编写import java.util.*; 即可。
3、在main方法中,创建Scanner对象的一个新实例(instance)。Java是一种面向对象的编程语言,因此它使用对象来表示概念。Scanner对象是含有字段和方法的对象。为了使用Scanner类,我们必须创建一个新的Scanner对象、它可以填充的字段和使用的方法。示例如下:
Scanner userInputScanner = new Scanner(System.in);userInputScanner是刚刚创建的Scanner对象实例的名称。注意名称是用骆驼体(每个单词首字母大写)写的,这是Java中变量命名的规定。
我们使用 new 运算符创建对象的新实例。因此在本例中,我们通过 new Scanner(System.in),创建了Scanner对象的新实例。
Scanner对象接受一个参数,该参数告诉对象要扫描什么。在本例中,我们输入System.in 作为参数。System.in告诉程序扫描来自系统的输入,这是用户将在程序中键入的输入。
4、提示用户输入。我们必须提示用户输入,以便用户知道何时在控制台中键入内容。这可以通过System.out.print或System.out.println实现。
System.out.print("What's your name? ");
5、要求Scanner对象接受用户键入的下一行,并将其存储在变量中。Scanner将始终接收用户键入的数据。下面的行将要求Scanner接受用户键入的姓名,并将其存储在变量中:
String userInputName = userInputScanner.nextLine();在Java中,使用对象方法的规定是objectName.methodName(parameters)。在userInputScanner.nextLine()中,我们使用刚才给出的名称调用Scanner对象,然后调用它的方法nextLine() ,该方法不接受任何参数。
注意,接下来程序将把下一行存储在一个"字符串"对象中。我们已将字符串对象命名为userInputName
6、向用户显示问候语。现在我们已经存储了用户名,我们可以打印一个问候语给用户。还记得我们在main类中编写的 System.out.println("Hello World."); 吗? 我们刚刚编写的所有代码都应该放在这一行上面。现在我们可以修改这一行,如:
System.out.println("Hello " + userInputName + "!");我们把"hello"、用户名和"!" 通过编写 "Hello " + userInputName + "!" 连起来的方式,称为字符串串联。
这里我们有三个字符串:"Hello "、userInputName和"!"。Java中的字符串是不可更改的。因此,当我们连接这三个字符串时,我们实际上创建了一个包含问候语的新字符串。
然后将这个新字符串作为参数输入System.out.println。
7、一起保存以上代码。我们的代码现在应该如下所示:
import java.util.Scanner;public class HelloWorld { public static void main(String[] args) {Scanner userInputScanner = new Scanner(System.in);System.out.print("What's your name? ");String userInputName = userInputScanner.nextLine();System.out.println("Hello " + userInputName + "!"); }}
8、编译并运行。进入命令提示符或终端,并运行与我们在第一次迭代HelloWorld.java时运行的命令。我们必须首先编译程序:javac helloworld.java。然后我们可以运行它:java HelloWorld。
小提示Java是一种面向对象的编程语言,建议你阅读更多关于面向对象编程语言的基础知识,非常有用。
面向对象编程有许多特征。其中三个主要特征是:封装:限制访问对象某些组件的能力。Java为字段和方法提供私有(private)、受保护(protected)和公共(public)三种修饰符。
多态:对象可以转换标识。在Java中,可以将一个对象转换为另一个对象,以使用另一个对象的方法。
继承:使用与当前对象位于同一层次结构中的另一个类的字段和方法的能力。

❻ JAVA语言的GUI实例

GUI做的计算器,可以查考一下,组件、事件等

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Calculator extends JFrame{

private Container container;//框架
private JTextField tf;//定歼斗义文本框
private Panel panel;
private String cmd;
private double result;//运算结果
private boolean start;//运算开始判断

Calculator(){

super("计算器");
container = getContentPane();
container.setLayout(new BorderLayout());

//添加文本框
tf = new JTextField("0.0");
container.add(tf,BorderLayout.NORTH);
tf.setHorizontalAlignment(JTextField.RIGHT);
tf.setEditable(false);

//嵌套容器
panel = new Panel();
container.add(panel);

start = true;
result = 0;
//最后坦肢运算等号
cmd = "=";

ActionListener insert = new InsertAction();
ActionListener command = new CommandAction();

/让改世/调用创建Button方法
addButton("1",insert);
addButton("2",insert);
addButton("3",insert);
addButton("0",insert);
addButton("*",command);
addButton("Back",insert);
addButton("4",insert);
addButton("5",insert);
addButton("6",insert);
addButton("+",command);
addButton("/",command);
addButton("Clear",insert);
addButton("7",insert);
addButton("8",insert);
addButton("9",insert);
addButton("-",command);
addButton(".",insert);
addButton("=",command);
setSize(400,200);
}

private void addButton(String str,ActionListener listener){

//添加Button方法(操作类型、注册监听器)
JButton button=new JButton(str);
button.addActionListener(listener);
panel.setLayout(new GridLayout(3,6));
panel.add(button);
}

private class InsertAction implements ActionListener{

//插入,insert
public void actionPerformed(ActionEvent event){
String input=event.getActionCommand();
if (start)
{
tf.setText("");
start=false;
}
if(input.equals("Back"))
{
String str=tf.getText();
if(str.length()>0)
tf.setText(str.substring(0,str.length()-1));
}
else if(input.equals("Clear"))
{
tf.setText("0");
start=true;
}
else
tf.setText(tf.getText()+input);
}
}

private class CommandAction implements ActionListener{

//计算,command
public void actionPerformed(ActionEvent e){

String command=e.getActionCommand();
if(start)
{
cmd=command;
}
else
{
calculate(Double.parseDouble(tf.getText()));
cmd=command;
start=true;
}
}
}

public void calculate(double x){

//加减乘除运算
if (cmd.equals("+")) result+=x;
else if (cmd.equals("-")) result-=x;
else if (cmd.equals("*")) result*=x;
else if (cmd.equals("/")) result/=x;
else if (cmd.equals("=")) result= x;
tf.setText(""+ result);
}

public static void main(String []args){

Calculator mycalculator=new Calculator();
mycalculator.setLocation(300,300);
mycalculator.setVisible(true);
}

}

❼ 怎么理解java中的实例化呢

Java中的实例化,其实理解起来也挺简单,其实就是创建对象
例如:Car car = new Car();
通常把这条语句的动作称之为创建一个对象,也就是所谓的实例化过程.
在这句话中,Car是一个"汽车类",这个"类"可以理解成是一个"工厂里的模具",然后我们可以根据这个"模具"来创造出"一个具体的产品",这个"具体的产品",也就是所谓的"实例化对象"。
所谓的实例化,就是根据"类",来创造出一个一个具体的对象!

❽ Java中实例是什么意思

new 一个对象是实例吗?
对,是实例,你说的没错。可以把这个new出来的对象叫做实例,说白了就是这个new出来的“东西”,叫它对象也可以,叫它实例也可以,对象和实例在这个角度上来讲是等价的。
这样:
Java中使用 new关键字 加上 构造方法,来创建一个对象,下面是一个名为Cat的类,
public class Cat {
public Cat() {
System.out.println("这是构造方法");
}
}
使用new + 构造方法 来创建一个对象,那么也就是
Cat c = new Cat();
前半部分,Cat c 的意思是,在内存中分配一个变量,名字叫c,这个变量是Cat类型的,它的值是什么?
一会儿在说;
后半部分,new Cat(); 这就是new关键字和构造方法来创建一个对象,Cat()是构造方法的名字没错吧?想造出一个对象来,就这么写,语法规定的,没有为什么;
new Cat(); 说明 new这个Cat类的一个对象,程序运行的时候,会调用构造方法Cat(),等这个构造方法执行完了,这个Cat类型的对象也就造出来了,真正的出现在内存当中了;
使用new关键字造出来的对象,被分配在内存的堆区(heap),而且等这个对象真正出来之后,还会做一件重要的事情:
我们这个对象是被分配在内存中的,那么内存地方大了,这个对象在哪里呢?怎么找到它呢?new关键字创建出一个对象之后,会把这个对象在内存中的地址返回,通过这个地址就可以找到这个对象,那么我们上面的写法,
Cat c = new Cat();
意思就是说,把这个对象在内存中的地址 赋值 给变量c,这就是Java中引用概念,c就叫做引用,或者叫引用变量,或者直接叫变量,没问题,都是它;
c的值就是一个内存地址,或者叫引用地址,通过这个地址,就可以准确的找到我们刚才创建出来的对象,以后我们要使用这个对象做一些事情,调用此对象的方法什么的,都用过这个引用,ok?
----
注意,我再说一遍,好多人都搞不清楚,这个c到底是对象还是引用,好多人说c就是Cat类的一个实例,这是非常错误的,c就是引用,不是对象!我们new出来的这个东西,真正在内存中的这个东西叫做对象,叫做实例

❾ java编程实例

我是Java初学者,我看了你的问题后想了很久终于把它做出来了,你看看吧,方法不是很好,但能满足你的要求:

import java.util.Scanner;
public class Check2{
int t;
char[] chs = new char[500]; //输入的句子不能超过500个字符
Check2() {
String str;
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串(输入的字符串不能超过500个字符):");
str = sc.nextLine();
t=str.length();
for (int i = 0; i < t; i ++) {
chs[i] = str.charAt(i); //将输入的字符串装入数组
}
}
}

class FuZhi{
char[] letter=new char[52]; //将52个字母(含大小写)装入数组
FuZhi(){
char p;
int i=0,j=26;
for(p='A';p<='Z';p++){
letter[i]=p; //这句刚才写掉了,加上去后程序就完整了
i++; //将A-Z装入数组
}
for(p='a';p<='z';p++){
letter[j]=p; //将a-z装入数组,并且从数组的第26个开始装入(letter[0]-letter[25]已被装入了字母)
j++;
}
}
}

class display{
public static void main(String[] args){
char temp;
int t;
int[] n= new int [52]; //用于统计每个字符出现的次数

Check2 k =new Check2();
FuZhi m=new FuZhi();

for(int j=0;j<52;j++){
t=0; //令t为0,,并且使上一个字母统计完成后
//将其再次初始化(如A统计完成后,当程序统计B出现的次数时,使B的初始次数为0)
for(int i=0;i<k.t;i++){
if(m.letter[j]==k.chs[i]){ //比较字符是否相同,如相同,使t自加一
t++;
n[j]=t; //数组n来统计每个字母出现的次数,即其中的每一个元素代表一个字母在程序中出现的次数
}
}
}
System.out.println("总共输入了"+k.t+"个字符:\n"+"其中");
for(int i=0;i<52;i++){
System.out.println("字母"+m.letter[i]+"出现的次数为:"+n[i]+"次");
}
}
}

写掉了一句“letter[i]=p;”,现在已经补上了,程序可以运行了,你试一下吧!!!

❿ java编程运算几个具体实例

三个案例
1、编写一个方法fun_01(),
判断一个整数是否包含数字7.

public class Test01{

public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
System.out.println("请输入数值: ");
int num = sc.nextInt();
System.out.println(func2( num));
}
public static boolean fun_01(int num){
int n;

boolean flag=false;

while(num!=0){

n=num%10;

if(n==7){

flag=true;

break;

}

num /= 10;

}

return flag;
}
}

2.metod2(),
对输入的任意字符串“1,4,7,13,5,17,9”
转换为数组元素是整数元素
,需要保存在整形数组中且实现排序输出“1 4 5 7 9 13 17”
public class Demo {

public static void main(String[] args) {
// String str =("1,4,7,13,5,17,9");
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字字符串,并用逗号隔开");
String str = sc.next();
metod2(str);
}
public static void metod2(String str){
String array[] = str.split(",");
int p[]=new int[array.length];
for(int i=0;i<array.length;i++){
p[i]=Integer.parseInt(array[i]);
}
//Arrays.sort(p);
for(int i=0;i<p.length-1;i++){
for(int j=0;j<p.length-1-i;j++){
if(p[j]>p[j+1]){
int temp =p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
}
for(int i=0;i<p.length;i++){
System.out.print(p[i]+" ");
}

}
}

3,编写一个方法,传入数值,打印出金字塔

public static void print(int num){
for(int i=0;i<num;i++){
for(int k=0;k<num-i-1;k++){
System.out.print(" ");
}
for(int j=0;j<2*i+1;j++){
System.out.print("*");
}
System.out.println();
}
}

阅读全文

与java软件实例相关的资料

热点内容
表格怎么转移到另一个文件夹 浏览:921
同态加密gpu 浏览:216
程序员告诉你网赌为什么赢不了 浏览:971
程序员最帅操作 浏览:72
云服务器可以随时更换吗 浏览:489
老款车在哪里可以买到app 浏览:460
程序员事业单位 浏览:68
特来电需要用哪个App 浏览:881
电脑如何共享其他服务器 浏览:260
php网站性能优化 浏览:354
被子收纳袋压缩真空 浏览:30
h1z1选什么服务器 浏览:484
苹果版三国杀怎么在安卓上下载 浏览:728
安润国际app在哪里下载 浏览:438
iospdf教程下载 浏览:332
加密货币换手率300表示什么 浏览:727
手机wps新建文件夹存照片 浏览:399
单片机rgbled 浏览:963
怎么通过文件加密后发给微信好友 浏览:90
用虚拟机编程 浏览:821