山东青岛安卓培训就业中心 专业Android软件工程师培训,手机软件开发人才就业实训中心0532-85025005

Java 代码性能优化

 

代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。

代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 22

Java程序员最亲睐的Web框架

 

这一次,我们要讨论的是web框架。

 

只有少数几种语言像Java一样提供了各种各样的web框架,上面的统计图就是一个证据。下面是其他开发者所使用web框架列表:

spring MVC/Spring Boot :Spring可以帮助各地的开发团队构建简单轻便、快捷灵活基于JVM的系统和应用程序 
Vert.x :一个用于在JVM上构建反应式应用程序的工具包 
JSF :官方的Java EE web框架 
Play Framework :更容易地使用Java & Scala构建可拓展的、快速又实时的web应用程序 
Grails :Java版本的Ruby on Rails,建立在Spring和hibernate之上,用Groovy编写 
Spark : 一个受Sinatra启发的小型框架,帮助使用最小的努力在Java 8中创建web应用程序 
Apache Struts :一个MVC框架,用于创建优雅的、现代化的Java web应用程序 
Dropwizard :一个用于开发操作友好、高性能、REST风格web服务的框架 
Vaadin :一个服务器端框架,用于构建单个页面的web应用程序 
JHipster :一个生成Spring Boot+ AngularJS项目的应用程序生成器 
Wicket :使得简洁、分离关注点和简单化开发到一个全新水平的web应用程序框架 
JAX-RS :JDK的内部框架,用于创建REST风格的web服务 
Stripes :让使用Servlet和JSP工作时变得轻松 
Sling :一个使用 Java Content Repository,并得到OSGIt支持的web框架 
GWT :Google开发的一个框架,可以编译Java代码为JavaScript运行在浏览器中 
XSLT :用于转换XML文档为另一种XML文档的语言 
Ratpack :用于构建现代化HTTP应用程序的Java库系列 
Express :这不是Java web框架,而是建立在Node.js上的JavaScript框架 
Ninja framework :全栈web框架,协同GAE工作很好 
Compojure :用于Ring和基于Clojure的web应用框架的小型路由库 
ZK :一个开源的Java框架,用于构建企业级web和移动app 
Symphony2 :用于web开发的高性能PHP框架 
Java企业版 :是社区驱动企业软件的标准 
大家如果用过这些框架,或对上面这些框架有任何看法,欢迎指出。期待听到你的声音。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 29

Java程序员应当知道的10个面向对象设计原则

 

面向对象设计原则是OOPS编程的核心, 但我见过的大多数Java程序员热心于像Singleton (单例) 、 Decorator(装饰器)、Observer(观察者) 等设计模式,而没有把足够多的注意力放在学习面向对象的分析和设计上面。学习面向对象编程像“抽象”、“封装”、“多态”、“继承” 等基础知识是重要的,但同时为了创建简洁、模块化的设计,了解这些设计原则也同等重要。我经常看到不同经验水平的java程序员,他们有的不知道这些OOPS 和SOLID设计原则,有的只是不知道一个特定的设计原则会带来怎样的益处,甚至不知道在编码中如何使用这些设计原则。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 29

Java动态代理与CGLIB

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

静态代理模式

因为需要对一些函数进行二次处理,或是某些函数不让外界知道时,可以使用代理模式,通过访问第三方,间接访问原函数的方式,达到以上目的。
interface Hosee{
    String sayhi();
}

class Hoseeimpl implements Hosee{

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 18

每个Android开发者必须知道的内存管理知识

 

相信一步步走过来的Android从业者,每个人都会遇到OOM的情况。如何避免和防范OOM的出现,对于每一个程序员来说确实是一门必不可少的能力。今天我们就谈谈在Android平台下内存的管理之道,开始今天的主题之前,先再次回顾两个概念。

内存泄漏:对象在内存heap堆中中分配的空间,当不再使用或没有引用指向的情况下,仍不能被GC正常回收的情况。多数出现在不合理的编码情况下,比如在 Activity中注册了一个广播接收器,但是在页面关闭的时候进行unRegister,就会出现内存溢出的现象。通常情况下,大量的内存泄漏会造成 OOM。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 33

35 个 Java 代码性能优化总结

 

前言

代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 11

Java程序员应当知道的10个面向对象设计原则

 

面向对象设计原则是OOPS编程的核心, 但我见过的大多数Java程序员热心于像Singleton (单例) 、 Decorator(装饰器)、Observer(观察者) 等设计模式,而没有把足够多的注意力放在学习面向对象的分析和设计上面。学习面向对象编程像“抽象”、“封装”、“多态”、“继承” 等基础知识是重要的,但同时为了创建简洁、模块化的设计,了解这些设计原则也同等重要。我经常看到不同经验水平的java程序员,他们有的不知道这些OOPS 和SOLID设计原则,有的只是不知道一个特定的设计原则会带来怎样的益处,甚至不知道在编码中如何使用这些设计原则。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 26

Java代码规范

 

Java代码规范

 

本Java代码规范以SUN的标准Java代码规范为基础,为适应我们公司的实际需要,可能会做一些修改。本文档中没有说明的地方,请参看SUN Java标准代码规范。如果两边有冲突,以本文档为准。

1. 标识符命名规范

1.1 概述

标识符的命名力求做到统一、达意和简洁。

1.1.1 统一

统一是指,对于同一个概念,在程序中用同一种表示方法,比如对于供应商,既可以用supplier,也可以用provider,但是我们只能选定一个使用,至少在一个Java项目中保持统一。统一是作为重要的,如果对同一概念有不同的表示方法,会使代码混乱难以理解。即使不能取得好的名称,但是只要统一,阅读起来也不会太困难,因为阅读者只要理解一次。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 11

Android适配难题全面总结

 

支持多种屏幕

Android 可在各种具有不同屏幕尺寸和密度的设备上运行。对于 应用,Android 系统在不同设备中提供一致的开发环境, 可以处理大多数工作,将每个应用的用户界面调整为适应其显示的 屏幕。同时,系统提供 API,可用于控制 应用适用于特定屏幕尺寸和密度的 UI,以针对 不同屏幕配置优化 UI 设计。例如,您可能想要不同于手机 UI 的 平板电脑 UI。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 16

Java集合类型详解

 

这篇文章总结了所有的Java集合(Collection)。主要介绍各个集合的特性和用途,以及在不同的集合类型之间转换的方式。

Arrays

Array是Java特有的数组。在你知道所要处理数据元素个数的情况下非常好用。java.util.Arrays 包含了许多处理数据的实用方法:
Arrays.asList:可以从 Array 转换成 List。可以作为其他集合类型构造器的参数。
Arrays.binarySearch:在一个已排序的或者其中一段中快速查找。
Arrays.copyOf:如果你想扩大数组容量又不想改变它的内容的时候可以使用这个方法。
Arrays.copyOfRange:可以复制整个数组或其中的一部分。
Arrays.deepEquals、Arrays.deepHashCode:Arrays.equals/hashCode的高级版本,支持子数组的操作。
Arrays.equals:如果你想要比较两个数组是否相等,应该调用这个方法而不是数组对象中的 equals方法(数组对象中没有重写equals()方法,所以这个方法之比较引用而不比较内容)。这个方法集合了Java 5的自动装箱和无参变量的特性,来实现将一个变量快速地传给 equals() 方法——所以这个方法在比较了对象的类型之后是直接传值进去比较的。
Arrays.fill:用一个给定的值填充整个数组或其中的一部分。
Arrays.hashCode:用来根据数组的内容计算其哈希值(数组对象的hashCode()不可用)。这个方法集合了Java 5的自动装箱和无参变量的特性,来实现将一个变量快速地传给 Arrays.hashcode方法——只是传值进去,不是对象。
Arrays.sort:对整个数组或者数组的一部分进行排序。也可以使用此方法用给定的比较器对对象数组进行排序。
Arrays.toString:打印数组的内容。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 32