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

面向切面记录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多态与异常处理——动手动脑

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方法不能

修改ueditor1_4_3编辑器jsp版使上传图片支持水印

November 15, 2015

主要思路:ueditor编辑器上传图片以request请求发送到后台,后台接收通过流的形式进行处理,我们只要在后台拦截到图片文件并进行加水印处理就能够实现该功能。 一、 下载ueditor1_4_3编辑器jsp版,使其能够正常工作; 二、 修改源码   主要修改StorageManager.java文件          1) 添加将上传文件和水印文件合成带水印图片的代码 /** * 将上传文件和水印文件合成带水印图片 */ public static void setWaterMark(File targetFile, String rootPath, String path) throws IOException { //源文件 Image src = ImageIO.read(targetFile); int width = src.getWidth(null); int height = src.getHeight(null); BufferedImag

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