Java代码优化总结(持续更新)
1、对equals不熟
例子
if(user.get("s").equals("ss")){ //一堆代码 }
注:一旦前端页面传null值过来,就错了,null不能.equals
修改
if("ss".equals(user.get("s"))){ //一堆代码 }
2、对return 不熟
例子
public String getResult() {
if ("条件") {
//一堆代码
return "结果";
}else {
//一堆代码
return "结果";
}
}
注:既然if里面有return了,确定后面的不走了,else里面的就可以放出来了。
修改
public String getResult() {
if ("条件") {
//一堆代码
return "结果";
}
//一堆代码
return "结果";
}
3、循环中不断创建引用
例子
for (int i = 0; i <= 100; i++)
{
Object obj = new Object();
//代码
}
注:这样编写循环语句,只会在内存里开辟很多Object对象的引用消耗内存
修改
Object obj;
for (int i = 0; i <= 100; i++)
{
obj = new Object();
//代码
}
4、尽量采用懒加载,需要的时候再创建
例子
String str = "chen";
if (i == 1){
list.add(str);
}
修改
if (i == 1){
String str = "chen";
list.add(str);
}
Java代码优化总结(持续更新)的更多相关文章
- Java名词术语---持续更新
在看技术文档的过程中,经常会出现新的java缩写术语,很多时候都不知道它们是什么,在这里记下,持续更新. ——————————————————————————————————————————————— ...
- Java代码优化(长期更新)
前言 2016年3月修改,结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化.在修改之前,我的说法是这样的: 就像鲸鱼吃虾米一样,也许吃一个两个虾米对于鲸鱼来说作用不大,但是吃的虾米多了,鲸 ...
- 2019春招面试高频题(Java版),持续更新(答案来自互联网)
第一模块--并发与多线程 Java多线程方法: 实现Runnable接口, 继承thread类, 使用线程池 操作系统层面的进程与线程(对JAVA多线程和高并发有了解吗?) 计算机资源=存储资源+计算 ...
- 常见算法合集[java源码+持续更新中...]
一.引子 本文搜集从各种资源上搜集高频面试算法,慢慢填充...每个算法都亲测可运行,原理有注释.Talk is cheap,show me the code! 走你~ 二.常见算法 2.1 判断单向链 ...
- Java基础——集合(持续更新中)
集合框架 Java.util.Collection Collection接口中的共性功能 1,添加 booblean add(Object obj); 往该集合中添加元素,一次添加一个 boolea ...
- Java基础——多线程(持续更新中)
如何建立一个执行路径呢? 通过查询API文档 java.lang.Thread类 该类的描述中有创建线程的两种方式 1.继承Thread类 (1).将类声明为 Thread 的子类 (2).该子类应重 ...
- 易错java知识点总结(持续更新)
1. 2.java转义字符的理解 参考知乎大神:http://www.zhihu.com/question/29232624 正向和逆向处理转义字符 正向:把两个字符 \ n 识别为一个转义字符 ne ...
- Java笔记(持续更新中)
Java语言的特点: 面向对象(封装,继承,多态) 平台无关性(JVM运行.class文件) 语言(泛型,Lambda) 类库(集合,并发,网络,IO/NIO) JRE(Java运行环境,JVM,类 ...
- java并发编程[持续更新]
目录 java并发编程 1.常用类介绍 Semaphore 2.名词解释 2.1 线程安全 2.2 可重入锁和不可重入锁 java并发编程 1.常用类介绍 Semaphore Semaphore 类是 ...
- Java学习目录(持续更新中)
随机推荐
- 11张PPT介绍Paxos协议
之前翻译了<The Part-Time Parliament>一文,论文非常经常,强烈推荐读一读原文.翻译完论文后,希望自己能用简单的描述来整理自己的理解,所以花了一些时间通过PPT的形式 ...
- springboot redis(单机/集群)
前言 前面redis弄了那么多, 就是为了在项目中使用. 那这里, 就分别来看一下, 单机版和集群版在springboot中的使用吧. 在里面, 我会同时贴出Jedis版, 作为比较. 单机版 1. ...
- TCPWrap的使用配置
参考地址: http://www.softpanorama.org/Net/Network_security/TCP_wrappers/index.shtml http://generationip. ...
- linux下umask的使用讲解
最近开始学习linux ,看完马哥的linux课程关于umask的这个部分, 写这篇博客希望加深下我对umask的理解 和对umask不太清楚的博友一些帮助. 1 umask 是什么 当我们登录系统之 ...
- MySQL及其图形界面navicat的安装
数据库的第一步就是安装MySQL了,基本的安装方法都在这里,所以这里小编整理出来,一方面为了自己复习,一方面也方便大家. (关于MySQL的笔试题,具体见下面博客:http://www.cnblogs ...
- Django学习笔记(3)——表单,测试和模板语法的学习
一,表单form 为了接收用户的投票选择,我们需要在前段页面显示一个投票界面,让我们重写之前的polls/detail.html文件,代码如下: <h1>{{ question.quest ...
- QT 设置有效绘图区域
void QPainter::setClipRect(int x, int y, int width, int height, Qt::ClipOperation operation = Qt::Re ...
- iOS网络请求-AFNetworking源码解析
趁着端午节日,自己没有什么过多的安排,准备花4-5天左右,针对网络请求源码AFNetworking和YTKNetwork进行解析以及这两年多iOS实际开发经验(其实YTKNetwork也是对AFNet ...
- .NET-ORM框架EF-Code First代码优先
前言 Code First顾名思义,通告代码创建实体与数据库.示例中我们会创建表,分表是Studen,Teacher. Code First实战示例 打开VS2013,创建一个项目我这里是用的MVC框 ...
- 使用 hashMap和treeMap开启多个摄像头的监控任务
背景:今天有个需求,传入多个摄像头ID,然后调用接口,开启这些摄像头的监控任务. 方法一: 如果你的摄像头监控任务格式为: {camera_id_list=[{createBy=tjt, camera ...