随笔分类 - Java web学习
java内存管理的小技巧
摘要:1,尽量使用直接量。 采用String str="hello"; 而不是 String str = new String(“hello”);2,使用StringBuilder和StringBuffer进行字符串连接。 String、StringBuilder、StringBuffer都可代表字符串,其中String代表字符序列不可变的字符串,而StringBuilder、StringBuffer都代表字符序列可变的字符串。3,尽早释放无用对象的引用Object obj= new Object(); ...obj=null;4,尽量少用静态变量 class person{ s
阅读全文
在原型架构上开发新的功能
摘要:1,新建JSP页面,并引用资源文件;2,新建Form POJO类;3,新建Validator类并配置applicationContext.xml;4,新建Controller类并配置applicationContext.xml,并指向对应的Form类和Validator;5,新建数据表对应的POLO类和DAO层来操作数据库,并使用Controller调用DAO类。
阅读全文
Spring标签库
摘要:spring提供了两个标签库文件:spring-form.tld(表单标签库,用于输出HTML表单) spring.tld(基础标签库,用于Spring数据绑定等)使用步骤:1,配置表单标签库,复制spring.tld到\WEB-INF目录下,并在web.xml中添加该标签库的引用: /spring-form /WEB-INF/spring-form.tld 2,在JSP文件中引入标签: 3,在request中保存JavaBean. 1 public class User { 2 3 private String username="admi...
阅读全文
用Myclipse开发Spring(转)
摘要:原文链接地址是:http://www.cnitblog.com/gavinkin555/articles/35973.html1 新建一个项目 File----->New ----->Project 在出现的对话框中选择 MyEclipse 下的 Web Project,在Project Name 输入mySpring1,其他的选项默认,再点Finish完成;2 加入Spring 包 在myspring1 项目上点右键,选MyEclipse ---> Add Spring Capabities,再点Finish完成;3 加入Log4j 包 菜单--->Project -
阅读全文
HashMap 和 HashSet
摘要:对于HashSet而言,系统采用Hash算法决定集合元素的存储位置,这样可以保证快速存取集合元素;对于HashMap,系统将value当成key的附属,系统根据Hash算法来决定key的存储位置,这样可以保证快速存取集合key,而value总是紧随key存储。(这些集合虽然号称存储的是java对象,但实际上并不会真正将java对象放入set集合中,而只是在Set集合中保留这些对象的引用。当程序视图将多个key-value 放入HashMap中时,采用一种“Hash算法”来决定每个元素的存储位置。 1 public V put(K key, V value) 2 { 3 if(key =...
阅读全文
transient关键字和volatile关键字
摘要:看到HashSet的源代码的时候,有一个关键字不太认识它。。transient,百度整理之:Java的Serialization提供了一种持久化对象实例的机制,当持久化对象时,可能有一些特殊的对象数据成员,我们不想使用Serialization机制来保存它,可以在这个field之前加上关键字transient,表示这个field不是该对象串行化的一部分。例如password。Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。Java语言规范
阅读全文
final修饰符
摘要:final可以修饰变量:被final修饰的变量被赋初值之后,不能对它重新复制。final可以修饰方法,被final修饰的方法不能被重写。final可以修饰类,被final修饰的类不能派生子类。被final修饰的变量必须显式指定初始值,而且只能在如下3个位置指定初始值: 1),定义final实例变量的时候指定; 2),在非静态初始化块中为final实例变量指定初始值; 3),在构造器中为final实例变量指定初始值。public class FinalInstanceTest { final int var1 ="crazy Java".length(); final int
阅读全文
父子类的类变量
摘要:类变量在类初始化阶段完成初始化,而实例变量则在对象初始化阶段完成初始化。如果需要访问父类中定义的类变量,可以使用super.作为限定来访问,也可以直接使用父类的类名来调用。public class StaticSub extends StaticBase { static int count =200; public void info() { System.out.println("本类的count类变量"+count); System.out.println("父类的count类变量"+StaticBase.count); Sys...
阅读全文
访问子类对象的实例变量
摘要:1 public class BaseTest { 2 3 public static void main(String[] args) 4 { 5 new Derived(); // 1 6 } 7 } 8 9 class Base10 {11 private int i =2;12 13 public Base()14 {15 this.display();16 }17 public void display()18 {19 System.out.prin...
阅读全文
static JAVA
摘要:static 关键字:使用static修饰的变量是类变量,属于该类本身,没有使用static修饰符的成员变量是实例变量,属于该类的实例。由于同一个JVM内只对应一个Class对象,因此同一个JVM内的一个类的类变量只需要一块内存空间,但对应实例变量而言,该类每创建一次实例,就需要为实例变量分配一块内存空间.实例变量的初始化时机:1.定义实例变量时进行初始化;2,非静态初始化块中对实例变量指定初始值;3,构造器总对实例变量指定初始值。非静态初始化块将先获得执行的机会,在构造器执行之前执行。 1 public class InitTest 2 { 3 4 public static vo...
阅读全文
锁对象-条件对象-synchronized关键字
摘要:1 import java.util.concurrent.locks.Condition; 2 import java.util.concurrent.locks.Lock; 3 import java.util.concurrent.locks.ReentrantLock; 4 5 public class BankCondition { 6 public BankCondition(int n,double initialBalance){ 7 accounts = new double[n]; 8 for(int i=0;i<accounts...
阅读全文
java多线程
摘要:今天系统学习下JAVA的多线程,之前看过一些,看过也就过去了,还是尽量多记录下,好好总结下。多线程在较低的层次傻瓜你扩展了多任务的概念:一个程序同时执行多个任务.进程和线程的区别:本质上每个进程拥有自己的一整套变量,而线程则共享数据。共享变量使线程之间的通信比进程之间更有效、容易。在一个单独的线程中执行一个任务的简单过程:1),将任务代码移到实现了Runnable接口的类的run方法中,public interface Runnable{ void run();}实现一个类:Class MyRunnable immplements Runnable{ public void run...
阅读全文
垃圾收集器的特点
摘要:垃圾收集器特点:1,垃圾收集器的主要目标是回收已经无用的对象的内存空间,从而避免内存泄漏体的产生,节省内存资源,避免程序代码的崩溃。2,垃圾收集器判断一个对象的内存空间是否无用的标准是:如果该对象不能再被功能中任何一个“alive”的部分所引用。3,垃圾收集器线程不可以被强制执行,但可以通过System.gc()方法来建议执行垃圾收集器。4,垃圾收集器不能保证一个无用的对象一定会呗垃圾收集器收集,也不能保证垃圾收集器在一段JAVA语言代码中一定会执行。5,没有办法预知在一组均符合垃圾收集器收集标准的对象中,哪一个会被首先收集。6,循环引用对象不会影响其被收集。7,可以通过将对象的引用变量初始化
阅读全文
java面试--(生成随机数,获取重复次数最多,并且数是最大的一个,打印出来)
摘要:import java.util.*;public class MaxRandom { public static void main(String[] args){ int[] num = new int[10]; for(int i=0;i=0;index ++) { count[num[index]]++; if(count[num[index]]>maxCount || (count[num[index]]==maxCount && maxValue<num[index]) ) ...
阅读全文
Java面试基础--(出现次数最多的字符串)
摘要:题目:给定字符串,求出现次数最多的那个字母及次数,如有多个 重复则都输出。eg,String data ="aaavzadfsdfsdhshdWashfasdf";思路:1.引入TreeSet,通过集合快速找到所有出现的字符串;2,引入ArrayList:为了快速排序,再通过StringBuffer生成排序后的字符串;3,通过String api中的基本方法 indeOf() lastIndexOf()来计算TreeSet中每个字符串的最大值;4,如果出现相同的则把相同的都记录在一个列表中,5,记录第一个出现次数最多的字符(为了计算多个字符串相同的情况)6,计算最大字符串列
阅读全文
分布式代码管理工具
摘要:hg (一个分布式管理工具)。TortoiseHg是在windows上的。使用:>yum install mercurial-hgk.x86_64 //安装。1 sudo useradd hgrepo -d /home/hgrepo 2 cd /home/hgrepo/ 3 mkdir project.hg 4 cd project.hg/ 5 hg init 6 ls 7 echo "hello,mercurial">sample.txt 8 ls 9 hg add 10 hg ci 11 ls 12 hg ci ...
阅读全文
Javaj基础知识runtime error
摘要:遇到的java 运行时错误:NullPointerException空指针 ,简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)遇到一个错误:No enclosing instance of type Employee is accessi
阅读全文
js学习
摘要:原型式继承对象的构造函数可以从其他对象中继承方法,它创建出一个原型对象后,所有其他的新对象都可以基于这个原型对象来构建。function Person (name) { this.name =name;}Person.prototype.getName= function () { return this.name};function User(name,password) { this.name = name; this.password = password;}User.prototype = new Person();User.prototypoe.getPassword = fu...
阅读全文
Myeclipse快捷键
摘要:Myeclipse常用快捷键:内容提示Alt+/快速修复:Ctrl+1--遇到小黄叉的时候导包:Ctrl+shift+O格式化代码块:Ctrl+shift+F向前向后:Alt+方向键添加注释:Ctrl+shift+/除去注释:Ctrl+shift+\更改大写ctrl+shift+x更改成小写ctrl+shift+y查看类的继承关系Ctrl+T查看源代码Ctrl+(鼠标点上),或者用ctrl+shfit+T查看所有快捷键ctrl+shift+L程序调试的时候,F5(跳入)F6(跳过)F7跳出。
阅读全文
浙公网安备 33010602011771号