Java & Android Interviews #1】的更多相关文章

1.GC是什么? 为什么要有GC?GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法. 2.XML包括哪些解释技术,区别是什么?DOM和SAXDOM将文档解析成一颗文档树,可在节点上进行遍历.增加.修改和删除.一次性读入内存,对内存消耗大.SAX至上而下解析文档,以事…
Java/Android中有四种引用类型,分别是: Strong reference     - 强引用Soft Reference        - 软引用Weak Reference      - 弱引用Phantom Reference - 虚引用 不同的引用类型有着不同的特性,同时也对应着不同的使用场景. 1.Strong reference - 强引用 实际编码中最常见的一种引用类型.常见形式如:A a = new A();等.强引用本身存储在栈内存中,其存储指向对内存中对象的地址.一…
Atitti.java android反编译解决方案-----虚拟机方案 哈哈,终极解决方案是虚拟机...c++也可以反编译为汇编代码,但无需担心,因为读懂汇编太麻烦..只要不能拿到c++源码就可... java可以使用虚拟机方式,使用汇编模式编写,真正的代码其实在  不外传的文档里面...如果对方反编译,只能得到类似于汇编的代码.. 作者::  ★(attilax)>>> 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊…
Java Android HTTP实现总结 Http(Hypertext Transfer Protocol)超文本传输协议,是一个基于请求/响应模式的无状态的协议,Http1.1版给出了持续连接的机制,客户端建立连接之后,可以发送多次请求,当不会再发送时再关闭连接. Android使用Java,对于Http协议的基本功能有两种实现方案: 1.使用JDK的java.net包下的HttpURLConnection. 2.使用Apache的HttpClient. 关于二者的比较可以看一下: http…
不少开源库(ButterKnife.Retrofit.ActiveAndroid等等)都用到了注解的方式来简化代码提高开发效率. 本文简单介绍下 Annotation 示例.概念及作用.分类.自定义.解析,并对几个 Android 开源库 Annotation 原理进行简析.PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 完整版原文见:Java Android 注解(Ann…
最新最准确内容建议直接访问原文:性能优化之Java(Android)代码优化 本文为Android性能优化的第三篇——Java(Android)代码优化.主要介绍Java代码中性能优化方式及网络优化,包括缓存.异步.延迟.数据存储.算法.JNI.逻辑等优化方式.(时间仓促,后面还会继续完善^_*) 性能优化专题已完成五部分: 性能优化总纲——性能问题及性能调优方式性能优化第三篇——Java(Android)代码优化性能优化第二篇——布局优化性能优化第一篇——数据库性能优化 性能优化实例 1.降低…
不管是在Java或者Android中运行命令行语句殊途同归都是创建一个子进程运行调用可运行文件运行命令.类似于Windows中的CMD一样. 此时你有两种方式运行:ProcessBuilder与Runtime:两种创建方式各有千秋,至于差别详见:[Java][Android][Process] ProcessBuilder与Runtime差别 在Android中创建子进程运行命令的时候有着一定的限制: 1.JVM提供的内存有限. 2.底层缓冲区间大小有限. 3.在高并发情况下easy造成堵塞.…
Xml解析之——Java/Android/Python 一.Xml文件 test.xml <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> <remote name="origin" fetch=".…
Java&Android反编工具: 1.Eclipse反编插件:安装到Eclipse后,可以简要的查看jar包中的*.class; 2.DoAPK:反编*.apk为smali和一些资源文件,可以山寨下别人应用的图片与动画等资源,深究的可以看下smail: 3.1.dexTojar:反编*.apk压缩包内的classes.dex为jar包: 3.2.jarGui:查看jar包的神器: 工具打包下载链接:http://download.csdn.net/detail/wujxiaoz/5717827…
java android 环境变量配置备忘录,全新重装系统要用到,备忘下来; JAVA_HOME D:\Java\jdk1.6.0_07 CLASSPATH  .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; ANDROID_SDK  E:\android\android-sdk-windows ANDROID_SDK_HOME  E:\android\avd Path  .;%ANDROID_SDK%\platform-tools;%AND…
Atitit.嵌入式web 服务器 java android最佳实践 1. Android4.4.21 2. 自己的webserver1 3. CyberHTTP for Java  cybergarage6 1. Android4.4.2  First使用jetty9,三说jdk编译级别非常高的... i-jetty 就是jetty6的apk版本..马用.. 使用jetty6 ,三,jpg都ok....大的文件就jetty.io.EofException..找到资料没法儿解除...放弃..je…
一.背景 无论是Java还是Android项目,往往都会用到多线程.不管是主线程还是子线程,在运行过程中,都有可能出现未捕获异常.未捕获异常中含有详细的异常信息堆栈,可以很方便的去帮助我们排查问题. 默认情况下,异常信息堆栈都会在输出设备显示,同时,Java & Android为我们提供了未捕获异常的处理接口,使得我们可以去自定义异常的处理,甚至可以改变在异常处理流程上的具体走向,如常见的将异常信息写到本地日志文件,甚至上报服务端等. 在未捕获异常的处理机制上,总体上,Android基本沿用了J…
什么是注解 java.lang.annotation,接口 Annotation,在JDK5.0及以后版本引入. 注解是代码里的特殊标记,这些标记可以在编译.类加载.运行时被读取,并执行相应的处理.通过使用Annotation,开发人员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充的信息.代码分析工具.开发工具和部署工具可以通过这些补充信息进行验证.处理或者进行部署. Annotation不能运行,它只有成员变量,没有方法.Annotation跟public.final等修饰符的地位一样,…
在Android开发中 Map与String的转换在,在一些需求中经常用到,使用net.sf.json.JSONObject.fromObject可以方便的将string转为Map.但需要导入jar包.在(android)容易导致资源浪费.下面的方法在不到入jar包的情况下,也能满足需求. 1)将Map转成形如username'chenziwen^password'1234的字符串 /** * 方法名称:transMapToString * 传入参数:map * 返回值:String 形如 us…
  1.new Thread的弊端执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } }).start(); 那你就out太多了,new Thread的弊端如下: a. 每次new Thread新建对象性能差.b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom.…
android 安装过程: 开发工具先把.java文件转换成.class,然后转换成dx,再签名打包成apk,最后在设备上执行 adb install c:\xxx.apk android 启动过程: 双击设备上的图标,创建进程-> 创建主线程 -> 在主线程中实例化 Activity(操作系统会把应用有关的信息context存进activity中,然后调用onCreate(). ) package com.example.hello; import android.app.Activity;…
src: 主要存放java源文件 gen:用于存放由开发工具自动生成的内容 R.java(很重要),用于登记各种资源的ID,编译器在你放入资源于自动生成的,程序员不需要自己去修改,是不能自己修改的 往res中添加任意内容,R.java 文件中会自动生成一串数据 res: 用于存放资源文件(图片,软件界面,软件中的文字等等) 下面三个文件夹,存放三种不同分辨率下的图片文件 drawable-hdpi(高分辨率):  存放图片资源 drawable-ldpi(低分辨率): drawable-mdpi…
JAVA的安装与环境变量的配置 1.先下载JAVA,并且安装. 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3- download-1501626.html 2.安装的时候,最好别改安装路径,默认路径一直点下一步即可! 3.安装完成后,接下来就是配置java环境变量了. 4.打开计算机属性,点击高级系统设置 5.选择“高级”-“环境变量” 二.  关于JDK 安装,以及Java环境的设置 1.下载JDK1.…
最新版的DELPHI开发DATASNAP非常简单便捷,DataSnap的REST风格和对JSON的支持,使之成为服务器端开发的神器. 一.DATASNAP服务器中的方法: TServerMethods1 = class(TDSServerModule)    Dspwire: TDataSetProvider;    ADOQuery1: TADOQuery;  private    { Private declarations }  public    { Public declaration…
Java JAVA_HOME:C:\Program Files\Java\jdk1.7.0_40 CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; Path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; Android ANDROID_SDK_HOME:E:\Android\android-sdk Path:%ANDROID_SDK_HOME%\platform-tools;%ANDROID_S…
本文转自:http://blog.csdn.net/innost/article/details/9008691 在软件开发过程中,想必很多读者都遇到过系统性能问题.而解决系统性能问题的几个主要步骤是: 测评:对系统进行大量有针对性的测试,以得到合适的测试数据. 分析系统瓶颈:分析测试数据,找到其中的hotspot(热点,即bottleneck). 性能优化:对hotspot相关的代码进行优化. 由上述步骤可知,性能优化的目标对象是hotspot.如果找到的hotspot并非真正的热点,则性能优…
本文参考:http://www.trinea.cn/android/android-traceview/ Android自带的TraceView堪比java的性能调优工具visualvm线程视图,可以方便的查看线程的执行情况,某个方法执行时间.调用次数.在总体中的占比等,从而定位性能点. 1.生成日志,运行TraceView 运行TraceView有两种方式 a.调用Debug类 在开始调试的地方,如Activity的OnCreate函数,添加 Debug.startMethodTracing(…
本文参考:http://www.trinea.cn/android/android-performance-demo/ 本文主要分享自己在appstore项目中的性能调优点,包括同步改异步.缓存.Layout优化.数据库优化.算法优化.延迟执行等. 一.性能瓶颈点 整个页面主要由6个Page的ViewPager,每个Page为一个GridView,GridView一屏大概显示4*4的item信息(本文最后有附图).由于网络数据获取较多且随时需要保持页面内app下载进度及状态,所以出现以下性能问题…
Retrofit官网:http://square.github.io/retrofit/ Retrofit 和Java领域的ORM概念类似, ORM把结构化数据转换为Java对象,而Retrofit 把REST API返回的数据转化为Java对象方便操作.同时还封装了网络代码的调用. 例如: public interface GitHubService { @GET("/users/{user}/repos") List<Repo> listRepos(@Path(&quo…
Retrofit 和Java领域的ORM概念类似, ORM把结构化数据转换为Java对象,而Retrofit 把REST API返回的数据转化为Java对象方便操作.同时还封装了网络代码的调用. 例如: public interface GitHubService { @GET("/users/{user}/repos") List<Repo> listRepos(@Path("user") String user); } 定义上面的一个REST API…
    JAVA的Executors源码:(可以看出底层都是通过ThreadPoolExecutor来具体设置的~) public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>()); } public static ExecutorSe…
Android应用开发已经进入到相对成熟的阶段,特别在国外,涌现出了各式各样的成熟稳定的开源库,供普通开发者使用.这种情况虽然极大加速了app开发的进程,但同时带来的问题是大多数普通开发者在使用这些开源库的时候只是止步于知道怎么使用它,但对开源库的底层实现原理并不清楚,或者不怎么深究,导致的问题很多:1)当开源库出现bug时,不能够很好很快的定位出问题:2)自己日常的代码编写只局限于实现app的业务逻辑,太上层,对技术水平的提升没有多大的好处:3)对追求完美的人来说,只有对自己项目中所有代码实现…
java.android学习路线图  看图之前先按住Ctrl键同时滑动鼠标滚轮…
简单的单线程队列 -- 工作的时候遇到劣质打印机.给打印机发消息,打印机就会打印,如果在打印机还在打印的时候,就 再发消息打印,就会出现消息丢失.所以需要给上一个任务一些处理的间隔时间. 单线程的消息队列示例 package demo1; import java.util.LinkedList; public class Main { /** * @param args */ private static Thread thread; private static LinkedList<Runn…
在Android中想要进行Ping,在不Root机器的情况下似乎还仅仅能进行底层命调用才干实现. 由于在Java中要进行ICMP包发送须要Root权限. 于是仅仅能通过创建进程来攻克了.创建进程在Java中有两种方式,分别为: 1. 调用ProcessBuilder的构造函数后运行start() 2. 用Runtime.getRuntime().exec()方法运行 经过使用后发现两者有差别可是也并非非常大,两个样例说明: 1.调用ProcessBuilder的构造函数后运行start(): P…