山东青岛电脑学校 专业软件工程师培训,软件人才就业实训中心0532-85025005

35个Java代码性能优化总结

 

前言

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

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 9

如何用一句话概括你用的编程语言?

 

A+:阵列编程语言,由摩根·斯坦利公司在1980年代在APL的基础上开发起来的,现在使用GPL授权。


Ada:是一种表现能力很强的通用程序设计语言,它能大大改善软件系统的清晰性, 可靠性, 有效性, 可维护性。


Assembly language(汇编语言):是用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,又为符号语言。


B语言:是贝尔实验室开发的一种通用的程序设计语言。

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 8

Java虚拟机体系结构

 

JAVA虚拟机的生命周期


  一个运行时的Java虚拟机实例的天职是:负责运行一个java程序。当启动一个Java程序时,一个虚拟机实例也就诞生了。当该程序关闭退出,这个虚拟机实例也就随之消亡。如果同一台计算机上同时运行三个Java程序,将得到三个Java虚拟机实例。每个Java程序都运行于它自己的Java虚拟机实例中。

  Java虚拟机实例通过调用某个初始类的main()方法来运行一个Java程序。而这个main()方法必须是共有的(public)、静态的(static)、返回值为void,并且接受一个字符串数组作为参数。任何拥有这样一个main()方法的类都可以作为Java程序运行的起点。

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 7

Java内存模型与线程

 

Java内存模型与线程
Start
硬件的效率与一致性
Java内存模型主内存与工作内存
内存间交互操作
对于volatile型变量的特殊规则可见性

禁止指令重排序优化
对于long和double型变量的特殊规则
原子性 可见性与有序性原子性Atomicity
可见性Visibility
有序性Ordering

先行发生原则

Java与线程线程的实现使用内核线程实现
使用用户线程实现
使用用户线程加轻量级进程混合实现
Java线程的实现

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 8

java实现一个简单的缓存

 

import java.util.Map;

import java.util.WeakHashMap;

import java.util.concurrent.ConcurrentHashMap;

import java.util.concurrent.locks.Lock;

import java.util.concurrent.locks.ReentrantLock;

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 16

40个Java多线程问题总结

 

前言

个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。 
这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些问题讲的不对,能指正的希望大家不吝指教。 

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 6

12个非常有用的JavaScript技巧

 

在这篇文章中,我将分享12个非常有用的JavaScript技巧。这些技巧可以帮助你减少并优化代码。

1) 使用!!将变量转换成布尔类型

有时,我们需要检查一些变量是否存在,或者它是否具有有效值,从而将它们的值视为true。对于做这样的检查,你可以使用||(双重否定运算符),它能自动将任何类型的数据转换为布尔值,只有这些变量才会返回false:0,null,"",undefined或NaN,其他的都返回true。我们来看看这个简单的例子:
function Account(cash) {  
    this.cash = cash;
    this.hasMoney = !!cash;
}
var account = new Account(100.50);  
console.log(account.cash); // 100.50  
console.log(account.hasMoney); // true

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 11

一位资深程序员大牛给予Java初学者的学习路线建议

 

Java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍。这一部分的内容,同样适用于一些希望转行到Java的同学。

  在大家看之前,我要先声明两点。1、由于我本人是Java后端开发出身,因此所推荐的学习内容是Java Web和Java后端开发的路线,非Java Web和Java后端开发的同学请适当参考其学习思想即可,切勿照搬。2、下面对于【第一部分】的推荐内容,目的是让你尽快成为一个可以参加工作的Java开发者,更适用于处于待业状态,准备转行Java的同学。

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 6

Android 6.0动态权限大总结

 

6.0动态权限这个问题,面试官很喜欢问这个。还有5.0、7.0新特性。
22以前的api,都是在AndroidManifest文件中注册权限即可,用户在安装apk的时候会有权限提示,但是哪个用户会看呢?google为了提高用户的安全性,在23(6.0)以后,app使用某一个敏感操作时,还需要用户的允许才行,否则这个功能无法使用。
动态权限就这么回事。

 

先贴一下我的工具类吧:

 


[java] view plain copy print?
/** 
 * @Author: duke 
 * @DateTime: 2017-03-30 15:51 
 * @Description: 权限检测工具类 
 */  
public class PermissionManager {  
  
    private PermissionManager() {  
    }  
  
    /** 
     * 是否需要动态申请权限 <br/> 
     * 
     * @return 需要:true,不需要:false 
     */  
    public static final boolean isNeedDynamicPermissions() {  
        //if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {}  
        if (Build.VERSION.SDK_INT >= 23) {  
            // 23 (Android 6.0)以上  
            return true;  
        }  
        return false;  
    }  
  
    /** 
     * 向用户弹出解释对话框 <br/> 
     * ******************************************************************************* 
     * ** 应用安装后第一次访问,直接返回false;                                     ** 
     * ** 第一次请求权限时用户拒绝了,下一次返回 true,                             ** 
     * ** 这时候可以显示一些为什么需要这个权限的说明;                              ** 
     * ** 第二次请求权限时,用户拒绝了,并选择了“不再提醒”的选项时,返回 false;  ** 
     * ** 设备的系统设置中禁止当前应用获取这个权限的授权,返回false;             ** 
     * ** 注意:第二次请求权限时,才会有“不再提醒”的选项,                        ** 
     * ** 如果用户一直拒绝,并没有选择“不再提醒”的选项,                          ** 
     * ** 下次请求权限时,会继续有“不再提醒”的选项,并且会一直返回true            ** 
     * ******************************************************************************* 
     * 
     * @param activity   上下文 
     * @param permission 需要提示解释的权限申请 
     * @return 需要提示:true,不需要:false 
     */  
    public static final boolean shouldShowRequestPermissionRationale(Activity activity, String permission) {  
        return ActivityCompat.shouldShowRequestPermissionRationale(activity, permission);  
    }  
  
    /** 
     * 检查当前是否已被赋予权限 <br/> 
     * 
     * @param context     上下文 
     * @param permissions 待判断权限集合 
     * @return 授权:true,缺少授权:false 
     */  
    public static final boolean checkSelfPermission(Context context, String... permissions) {  
        if (null == permissions || permissions.length == 0) {  
            return false;  
        }  
        for (String permission : permissions) {  
            if (TextUtils.isEmpty(permission)) {  
                return false;  
            }  
            /** 
             * 检测权限核心方法 
             */  
            if (ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_DENIED) {  
                //如果其中某一个未授权  
                return false;  
            }  
        }  
        //权限参数合法,且全部都授权过  
        return true;  
    }  
  
    /** 
     * 正式请求用户授权 <br/> 
     * 
     * @param context     activity上下文 
     * @param permissions 待权限的权限集合 
     * @param requestCode 本次授权请求码 
     */  
    public static final void requestPermissions(Activity context, String[] permissions, int requestCode) {  
        ActivityCompat.requestPermissions(context, permissions, requestCode);  
    }  
  
    /** 
     * 检查授权结果,是否为“成功授权” <br/> 
     * 
     * @param grantResults 权限结果集合 
     * @return 授权成功:true,授权失败:false 
     */  
    public static final boolean checkPermissionsResult(int[] grantResults) {  
        if (grantResults == null || grantResults.length == 0) {  
            return false;  
        }  
        for (int grantResult : grantResults) {  
            if (grantResult == PackageManager.PERMISSION_DENIED) {  
                //其中一个未授权,立即返回false授权失败  
                return false;  
            }  
        }  
        return true;  
    }  
}  

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 12

35个Java代码性能优化总结

 

前言

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

Tags:

发布: 青软IT学院 分类: 未分类 评论: 0 浏览: 4