java按值传递理解

November 15, 2015

Java没有引用传递只有按值传递,没有引用传递只有按值传递,值传递。 通过下面代码解释: 1 public class Test { 2 public static void main(String[] args ){ 3 int var = 1 ; 4 f(var) ; 5 System.out.println(var) ; 6 } 7 public static void f(int newVar ){ 8 newVar = 2 ; 9 } 10 } 执行结果:  1 分析: 当执行 int var = 1 时,jvm在栈中开辟一块空间存放值---1,同时var变量指向值1所对应的内存空间,也就是var变量也有自己的内存空间,不过它的空间里存放的是值1所对应的内存地址。   当执行到第七行,要将var的值传递进方法f中时,jvm执行的操作是创建一个新的变量newVar,并将var里存放的值(也就是值1的内

java项目打成jar包时引用了第三方jar,此时我们该如何解决呢

November 15, 2015

Web项目做多了,反而对单纯的java项目陌生了,今天我们在开发项目的过程中,碰到一个这样的需求:需要将java项目放到linux系统上跑起来,当然这个javaSE项目是带main方法的。我们知道在IDE里写完JavaSE项目后,运行非常简单,只要本地java环境装好了,右击main方法---->run as-->java application就行,那么放到linux上呢?目前我们想到的有两种方法:一种是打成jar包放到服务器上,用命令java -jar ****.jar执行jar包即可。另外一种也是挺常见的将java项目放到服务器上,然后写一个shell脚本执行。关于方法二,还正在尝试之中。今天我要说的是方法一操作时需要注意的。 打jar包很简单,直接在myeclipse或者eclipse里导出jar包就行。具体做法是: 右击项目------->export---->选择JAR file: ------>next----->:指定导出的jar包具体存放位置即jar包名称: ------>next--->默认: ------>选择要执行的main方法: ----->finesh,这样

Java Web开发介绍

November 15, 2015

转自:http://www.cnblogs.com/pythontesting/p/4963021.html Java Web开发介绍 简介 Java很好地支持web开发,在桌面上Eclipse RCP谈不上成功,JAVA是主要用在服务器端,和Python一样是极其重要的Web后台开发语言。 Java Web应用通常不直接在服务器上运行,而是在Web容器内。容器提供的运行时环境,提供JVM (Java Virtual Machine)运行本地Java应用。容器本身也运行在JVM。 通常Java的分为两个容器:Web容器和Java EE容器。典型的Web容器是Tomcat或Jetty。Web容器支持Java Servlet和JavaServer Page的执行。 Java EE容器支持更多的功能,例如,服务器负载的分布。 大部分现代的Java Web框架是基于servlet的。流行的Java Web框架有GWT,JavaServer Faces,Struts和Spring框架。这些Web框架通常需要至少需要Web容器。 Java Web应用程序是动态的资源(如Servlet,JavaSe

java多态与异常处理——动手动脑

November 15, 2015

编写一个程序,此程序在运行时要求用户输入一个 整数,代表某门课的考试成绩,程序接着给出“不及格”、“及格”、“中”、“良”、“优”的结论。 要求程序必须具备足够的健壮性,不管用户输入什 么样的内容,都不会崩溃。   import java.util.*;   public class Mark { public static void main(String[] args) { Scanner sc =new Scanner(System.in); int score=0; System.out.print("请输入成绩:");            try         {       score=sc.nextInt();           if(score>=0&&score<=59)              {                System.out.println("不及格");              }              if(score>=60&&score<=69)              {               System.o

Servlet+Javabean+Html实现简单的查询.删除.修改.添加四个功能

November 15, 2015

1. 1.1 首先创建一个单列,供外界实用: package cn.com.yong.Utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBConnection { private String url="jdbc:mysql://localhost:3306/guimei"; private String user="root"; private String password="666888"; private Connection con=null; //构造方法私有化 private DBConnection(){ try { Class.forName("com.mysql.jdbc.Driver"); con=DriverManager.getConnection(

spring注入静态成员变量提示invalid setter method

November 15, 2015

果然还是不够细心啊,被坑一晚上.. 一个极其简单的小程序,但是需要通过xml文件配置注入一个值,唯一的特别是要注入的属性是类中的静态成员变量.. 如下,然后自动生成get和set方法..坑就从此开始了... public class Food{ private static String desc; public static String getDesc(){ return desc; } public static void setDesc(String desc){ Food.desc = desc; } } 然后xml中如下配置: 然后启动就会报找不到set方法的错误...反复对比set方法的名字,无任何异常..然后一晚上就这样报废了... 最后发现自动生成的方法会带static修饰符,而spring的set方法不能

面向切面记录log4j日志

November 15, 2015

首先,AOP处理日志是必需的,不使用AOP处理日志有诸多不便。 日志处理是每个项目当中一个非常重要的内容。没有了日志,也就失去了对系统的可控性。没有日志,系统出现任何问题,都会没有踪迹可寻,这对一个信息系统而言是非常危险的。  然而,使用纯OOP思想进行日志处理,我们会发现,每个逻辑部分中总会混入日志处理的代码,导致纯OOP思想的设计略显不伦不类。同时,如果记录日志的类型需求有变更,那么我们就要去每个逻辑单元中修改Java代码。另外,如果需求今天变了明天再变的话,我想这将是一个非常繁重并且惹人厌的工作。 其实日志处理应该是软件系统中单独的一大部分,开发人员在进行系统开发时,不应该再来考虑日志处理。AOP能够做到这一点,让开发人员更加专注于系统的业务编码,而无需顾虑日志问题(这一点大家可以联系声明式事务处理的方式,配置好了处理事务的配置文件,编写Manager或者action时,都无需顾虑事务)。 然后,介绍例子中的代码实现。 1、引入jar包:                   2、切面Aspect代码: package com.lzq.spring.aop; import o

什么是单例模式?

November 15, 2015

单例模式的定义:一个类就有一个实例对象,而且自行实例化,并向整个系统提供这个实例。 单例模式根据实例化对象的时机不同分为两种:饿汉式单例、懒汉式单例。 懒汉式单例: public class Singleon{ private static Singleon singleon = new Singleon(); private Singleon(){} pulic static Singleon getInstance(){ return singleon;    } } 饿汉式单例: public class Singleon{ private static Singleon singleon = null; private Singleon(){} public static synchronized Singleon getInstance(){ //加上synchronized 纯粹就是为了线程安全,这里我就不多说了,自己接触的不多,没有发言权

java中的final总结

November 15, 2015

Java关键字final有最终的,不可改变的含义,它可以修饰非抽象类、非抽象类成员方法和变量。 报错:类"TestFinal"要么是abstract,要么是final的,不能两个都是. 1.final修饰的类就是终极的.不能被其他类继承,就不可能有子类. 2.由于final类没有子类,其中的方法不可能被覆盖,因此,final类中的 所有方法和变量都是final的,并不需要明确地将某个方法声明为final.   public final class TestFinal{ public static final int I=1;//final类中的数据成员可以是final的 protected int j;//final类中的数据成员可以不是final的 public void f(){}//final类中的方法是final的,可以不明确声明 public final void g(){}//final类中的方法可以声明为final的,不过没什么意义 } 3.final方法不能被子类的方法覆盖,但可以被继承。   public class Test

你应该知道的机器学习方法

November 15, 2015

决定何时以及如何在你的团队中使用AI(人工智能)技术是一项艰巨的任务。即使此技术已经非常先进,我们也可以使用许多相同的在其它软件上被成功实践过的方法。