`

java技巧(一)

 
阅读更多
调试窗口中的变量试图:
变量是临时存贮在内存中的标示符,可以通过变量的值来获取整个程序错误的原因;
例如:变量为空是就是程序没有运行到该处,变量的值和预期的不一样的话就是逻辑问题.


Java变量命名规则
包名全小写,类名首字母全大写,常量全部大写并使用下划线分割,变量采用驼峰命名法(在变量命名中不要引入容易混淆的字母)

提升java性能

1、 不要在循环条件下计算

2、 尽量把变量、方法声明为final static 类型

public String toChineseNum(int num){
		String[] cns = {"1","2","3","4"};
	
		return cns[num];
}


变为:

final static  String[] cns = {"1","2","3","4"};
public String toChineseNum(int num){
	
			return cns[num];
}


3、 缩小变量的作用范围

关于变量,能定义在方法内的就定义在方法内,能定义在一个循环体内的就定义在循环体内,能放在一个try......catch块内的就放置在该块内,其目的就是加快GC的回收;

4、 频繁字符串操作使用StringBuilder或StringBuffer
StringBuilder的append()比String的“+”性能要好;


5、 覆盖Exception的fillInStackTrace方法

FillInStackTrace方法是用来记录异常时的栈信息的,这是非常耗时的动作,
Class MyException extends Exception{
	Public Throwable fillInStackTrace(){
Return this;
}


6、 如非必要,不要克隆对象

一般情况下new生成的对象比clone生成的性能要好得多

Java多线程和并发

1、 不推荐覆写start方法,如果覆写我们调用start方法时,整个应用程序中只有一个主线程运行,并不会创建任何其他线程,对于我们来说只需要实现多线程的逻辑即可(run方法体);


2、 启动线程前stop方法是不可靠的,我们只要在判断条件中调用start()即可;

3、 使用stop时不能直接调用,stop比较粗暴不管线程执行玩没有就终止,我们可以使用如下方法:

(1)使用自定义的标志位决定线程的执行情况:

public class SafeStopThread extends Thread {

	// 此变量必须加上volatile
	private volatile boolean stop = false;

	@Override
	public void run() {

		// 判断线程是否运行
		while (stop) {

		}
		super.run();
	}

	// 线程终止
	public void terminate() {
		stop = true;
	}

}


(2)如果是线程池(ThreadPoolExecutor)可以通过shutdown方法逐步关闭池中的线程

4、线程优先级只使用三个等级

		public class Thread implements Runnable{
//	最低优先级
		public final static int MIN_PRIORITY = 1;
//	普通优先级,默认值
		public final static int MORM_PRIORITY = 5;
//	最高优先级
		public final static int MAX_PRIORITY = 10;
		}


数组和集合

1、 性能考虑,数组是首选,对于基本数据类型进行求和计算时,数组的效率是集合的10倍;

如:
public static int sum(int[] datas) {

		int sum = 0;
		for (int i = 0; i < datas.length; i++) {
			sum += datas[i];
		}
		return sum;
	}

	public static int sum(List<Integer> datas) {

		int sum = 0;
		for (int i = 0; i < datas.size(); i++) {
			sum += datas.get(i);
		}
		return sum;

	}

List相当于数组做了装箱和拆箱的动作;

类、对象和方法

1、 不要主动进行垃圾回收(System.gc),在system.gc时要停止所有的响应,才能检查是否有可回收的对象,所以,即使经常出现内存溢出也不要调用,内存溢出是可分析的,是可以找出原因的;


2、 推荐覆写toString(),java默认的toString()不是很友好,打印出来的(person@1fc4bec格式:类名+@+hashCode),我们可以覆写一下:

public String to String (){
return String.format("%s.name=%s", this.getClass(),name);
}



有这样的输出才好dubug,当Bean的属性较多时,自己实现就不可取了,但是有apache的commons工具包中的toStringBuilder类;


3、 使用静态内部类提高封装性

(1)
public class Person {
	
	private String name;
	
	private String home;
	

	public Person(String _name) {
		name = _name;
		// TODO Auto-generated constructor stub.
	}
	
	/** home、name的getter、setter方法省了*/
	
	public  static class Home(){
		private String address;
		private String tel;
		
		public Home(String _address, String _tel){
			address = _address;
			tel = _tel;
			
		}
		
		/** address\tel的gettter和setter方法省了*/
	}


使用:
public static void main(String[] args) {
		Person p = new Person("张三")
				
				p.setHome(new Person.Home("上海","021"));
	}


(2)静态内部类与普通内部类区别

a.静态内部类不持有外部类的引用
b.静态内部类不依赖外部类
c.普通内部类不能声明static的方法和变量

分享到:
评论

相关推荐

    java技巧java中可以用来循环遍历任何一个集合的通用方法

    ### Java技巧:循环遍历集合的通用方法 在Java编程中,经常需要对集合进行遍历操作以处理其中的数据元素。对于不同的集合类型(如`List`、`Set`、`Map`等),如何实现一个统一且高效的遍历方式是非常重要的。本文将...

    张孝祥Java面试技巧

    本文将围绕“张孝祥Java面试技巧”这一主题,深入探讨Java集合框架的重要组成部分——`map`、`set`、`list`,以及它们在Java中的实现方式和应用场景,帮助读者在面试中更好地展现自己的专业素养。 #### Collection...

    java编程技巧典型案例解析

    本资料集旨在通过一系列典型示例,深入剖析Java编程中的常见问题及其解决策略,帮助开发者更好地理解和运用Java语言。 1. 类与对象的设计 - 抽象类与接口:理解何时使用抽象类,何时使用接口,以及它们在多态中的...

    java面试小技巧1

    一、Java面试准备的必要性与实用性 1. 应聘Java开发岗位时,面试准备的重要性,尤其对于应届毕业生。 2. 通过实用的面试技巧,有助于快速掌握面试要点,提升面试通过率。 二、Java市场就业形势分析 1. 2015年Java...

    Java循环技巧大全

    ### Java循环技巧大全 在Java编程中,循环结构是实现重复执行特定代码块的基本方法之一。本文将深入探讨Java中的循环技巧,特别是如何利用不同类型的循环控制语句来优化程序性能,提高代码可读性和可维护性。 ####...

    Java编程技巧典型案例解析

    《Java编程技巧典型案例解析》一书聚焦于这些关键技巧,通过24个精心挑选的源代码案例,深入浅出地展示了Java编程中的精华所在。以下是根据标题、描述以及压缩包子文件的文件名称列表,提炼出的一些核心Java编程知识...

    Java程序设计技巧1001例

    《Java程序设计技巧1001例》是一个深入学习Java编程的资源集合,包含了大量实例,旨在帮助开发者提升技能和理解Java语言的核心概念。通过这1001个实例,我们可以系统地掌握Java语言的各个方面,包括基础语法、面向...

    java分页技巧1

    在Java开发中,分页是数据管理中一个非常常见的需求,特别是在处理大量数据时,为了提高用户体验和系统性能,我们通常需要将数据分成多个小部分,即“页”,让用户逐页浏览。本知识点主要讲解如何在Java中实现分页...

    Java 调试技巧

    Java调试技巧,特别是针对Eclipse的调试方法,是Java开发者必备的技能之一。在Java编程中,多线程编程是一个重要且复杂的主题,因为它允许程序同时执行多个任务,提高CPU的利用率,尤其对于网络和交互式应用至关重要...

    java程序设计技巧1001个实例

    Java是一种广泛使用的面向对象的编程语言,以其平台独立性、高效性和丰富的类库而闻名。在"Java程序设计技巧1001个实例"中,我们可以深入学习如何利用Java进行高效的程序开发。这个资料集涵盖了从基础到高级的Java...

    Java程序设计技巧与开发实例

    Java程序设计作为一种广泛应用于企业级应用、Android移动开发以及大数据处理等领域的编程语言,其高效、稳定和跨平台的特性使其备受青睐。本资源“Java程序设计技巧与开发实例”深入探讨了Java编程中的关键技术和...

    java打包技巧.rar

    Java打包技巧是开发人员在项目开发过程中不可或缺的一部分,它涉及到如何将源代码、资源文件以及依赖库整合到一个可执行的格式,以便于分发、部署和运行。在这个"java打包技巧.rar"压缩包中,我们可以期待找到一些...

    Java开发经验及技巧集大汇总.pdf

    (2)做出来的系统一定要能满足实际的需求,不能做一个华而不实的系统,也不能做一个漏洞百出的系统。 (3)在进行 java 开发时要和企业的开发保持一致,好是类似实战形式的 java 开发行为,不能说拿大学时候那种...

    难得的英文java技巧汇总

    根据提供的文件信息,我们可以归纳出一系列与Java相关的技巧和知识点。...综上所述,《难得的英文java技巧汇总》不仅提供了一系列宝贵的资源链接,还包含了丰富的Java知识点和实践经验,适合各阶段的Java开发者阅读。

    Java特效处理技巧

    ### Java特效处理技巧详解 #### 一、Java特效概述 Java特效主要指通过Java语言为网页增添动态效果的技术。这些特效通常包括但不限于图片变换、文字动画、3D效果等,可以显著提升网页的视觉吸引力和用户体验。Java...

    Java开发经验及技巧集大汇总.zip

    Java开发是一种广泛应用于企业级应用、桌面应用、移动应用、Web应用等领域的编程语言,具有“一次编写,到处运行”的跨平台特性。本资料集大汇总涵盖了Java开发过程中的核心概念、最佳实践以及实用技巧,旨在帮助...

    Java数组特点及基本使用技巧

    Java数组特点及基本使用技巧 Java数组是Java编程语言中的一种基本数据结构,用于存储同类型的多个值。 Java数组有很多特点和...Java数组是一种非常有用的数据结构,掌握数组的特点和基本使用技巧对Java编程非常重要。

    提高java代码性能各种技巧

    Java 代码性能优化技巧总结 Java 代码性能优化是每个 Java 开发者都需要掌握的重要技能。以下是对 Java 代码性能优化的各种技巧的总结: 字符串池的实现 在 Java 中,字符串池(String Intern Pool)是通过使用...

    java源码包---java 源码 大量 实例

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    java NIO技巧及原理

    Java NIO(New Input/Output)是Java标准库提供的一种I/O模型,它与传统的 Blocking I/O(IO)相比,提供了更加高效的数据传输方式。在Java NIO中,"新"主要体现在非阻塞和多路复用这两个特性上,这使得NIO更适合于...

Global site tag (gtag.js) - Google Analytics