
java基础
文章平均质量分 50
zhoushenxian
我是一个菜鸟android开发工程师,目前从事电视端开发
展开
-
android 面试题 Parcelable与Serializable区别
一、序列化与反序列化由于在系统底层,数据的传输形式是简单的字节序列形式传递,即在底层,系统不认识对象,只认识字节序列,而为了达到进程通讯的目的,需要先将数据序列化,而序列化就是将对象转化字节序列的过程。相反地,当字节序列被运到相应的进程的时候,进程为了识别这些数据,就要将其反序列化,即把字节序列转化为对象。有了以上理解,接下来我们认识两个用于序列化和反序列化的接口:java原生的Seriali...原创 2019-07-16 05:32:22 · 1084 阅读 · 0 评论 -
性能优化之 线程优化
线程调度原理在任意时刻,只有一个线程占用cpu,处于运行状态,在多线程并发的情况下,轮流使用CPU的使用权,但是现在是多核的时代, 比如现在很多电脑或者手机是8核的,意思是有8个cpu,让这8个cpu去执行任务,如果是执行任务很多的情况下,cpu是轮流的方式去执行任务的,而这个CPU去执行任务是由cpu去负责调度的,线程调度模型线程调度模型有二类第一类:分时调度第二类: 抢占...原创 2019-07-16 04:25:26 · 6264 阅读 · 0 评论 -
android 面试题谈谈transient关键字
我们知道在Java中只要实现了Serializable接口,这个都可以被序列化,在Android中进行序列化还有一种方式, 就是Parcelable,而且比Java提供的序列话方式性能更高,但是在实际的开发中我们有些类虽然实现了Serializable接口,但是里面的有些属性不想进行序列化,这个时候就可以在这个变量的前面添加transient修饰了,class Rectangle imp...原创 2019-07-16 03:02:36 · 1931 阅读 · 0 评论 -
android 面试题 谈谈深拷贝和浅拷贝
对称拷贝就是将一个对象的属性拷贝到另一个类有着相同类类型的对象中浅拷贝浅拷贝就是按位拷贝对象,它会创建一个新的对象,这个对象有着原始对象属性值的一份精确拷贝,如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址值,因此如果其中一个对象改变了这个地址就会影响其他的对象用demo来测试下public class ShallowCopyTest { ...原创 2019-07-16 02:38:23 · 804 阅读 · 0 评论 -
Java ASCII编码
定义:美国信息交换标准代码,代码用于显示现代英语和其他西欧语言我们可以使用代码来获取字符的ascii编码public class ASCIIDemo { public static void main(String[] args) { char ch = 'A'; char ch1 = 'a'; int ascii = ch;...原创 2019-07-11 18:10:20 · 13036 阅读 · 0 评论 -
android 谈谈AOP(一)
学Java有个OOP (Object Oriented Programming)即面向对象编程,它不是一门技术,而是思想,而AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术AOP是OOP的延续,是软件开发中的一个热点,也是很多框架如 java中的Spring框架中的一个重要内容,是函数式编程...原创 2019-07-07 23:38:31 · 491 阅读 · 0 评论 -
android面试题 谈谈强 软 弱 虚引用
首先看类的结构图:t它是在java.lang.ref包下 从上面的单词就知道了Reference是引用的意思,前面的前缀就是所说的软 弱 虚引用,我们通常都是使用强引用, Person person = new Person();Java默认就是强引用,比如上面的new Peson对象,强引用的特点:当内存不足, jvm开始垃圾回收,对于强引用的对象,就算出现OOM异常...原创 2019-07-07 05:37:48 · 643 阅读 · 0 评论 -
android 面试题 状态模式
定义:当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类首先从这个名字上看,状态,比如视频播放,它有一些状态,比如 暂停 播放 停止,快速,这些状态是可以切换的,在普通的人们心中可能会定义几个static变量或者枚举的方式来对状态的切换,但是如果新增的需求 可能要修改源代码,这就违背了设计模式的开闭原则,就是对扩展开放 对修改关闭,这个时候就适合用状态...原创 2019-07-04 06:03:07 · 143 阅读 · 0 评论 -
android ThreadLocal使用以及作用
如果想看懂Android中Handler源码,那么ThreadLocal类的作用必须要懂,ThreadLocal的出现解决了线程存存储自己的数据不发生异常,而不是解决线程安全问题,看下例子:package thread;public class ThreadLocalTest { static ThreadLocal<String> threadLocal = new...原创 2019-07-04 01:35:45 · 819 阅读 · 0 评论 -
android 面试题 说说创建线程的几种方式
在Java中一般创建线程有四种方式:第一种:继承Thread,这种创建线程的缺点就是因为Java是单继承,假如是四个线程共享一分资源的话,这种方式就不使用了第二种:实现Runnable接口,一般都是使用第二种,因为Java机制是多实现单继承,第三种Callable 使用这种方式创建线程的好处是可以有返回值,android中AsyncTask源码就会用到,第四种方式就使用线程池了....原创 2019-07-02 20:03:38 · 434 阅读 · 0 评论 -
android 面试题 ArrayList是线程不安全的,请写出例子并给出解决方案
我们知道List集合不安全的是因为add()方法没有使用synchronized,我们知道jdk很早有个Vector类,看看它的add()public synchronized boolean add(E e) { modCount++; ensureCapacityHelper(elementCount + 1); elementData[e...原创 2019-07-02 03:21:59 · 2158 阅读 · 0 评论 -
android 面试题 CAS
首先弄清楚什么是cas:在计算机科学中,比较和交换(Conmpare And Swap)是用于实现多线程同步的原子指令。 它将内存位置的内容与给定值进行比较,只有在相同的情况下,将该内存位置的内容修改为新的给定值。 这是作为单个原子操作完成的。 原子性保证新值基于最新信息计算; 如果该值在同一时间被另一个线程更新,则写入将失败。 操作结果必须说明是否进行替换; 这可以通过一个简单的布尔响应(这...原创 2019-07-02 02:37:18 · 804 阅读 · 0 评论 -
android. mac. 如何查看jdk安装目录
最近在准备面试, 学习下并发这块,要看下源码,突然不知道jdk安装位置在哪里,可以使用如下命令/usr/libexec/java_home -V注意: V大写的,在此记录下!原创 2019-07-02 01:02:16 · 1020 阅读 · 0 评论 -
java 序列化和反序列化
java 序列化和反序列化原创 2017-03-02 10:23:16 · 354 阅读 · 0 评论 -
java 面试题 打印出九九乘法表
java 面试题 打印出九九乘法表原创 2016-03-01 00:37:26 · 1076 阅读 · 0 评论 -
java 面试题 求10的阶乘之和
java 面试题 求10的阶乘之和原创 2016-03-01 00:36:16 · 4976 阅读 · 0 评论 -
java基础 内部类使用总结
java基础 内部类使用总结原创 2016-02-21 19:04:53 · 466 阅读 · 0 评论 -
java 基础异常使用总结
java 基础异常使用总结原创 2016-02-21 00:46:37 · 1164 阅读 · 0 评论 -
java 基础之反射使用总结
java 基础之反射使用总结原创 2016-02-20 21:19:12 · 849 阅读 · 0 评论 -
java 基础 泛型使用总结
java 基础 泛型使用总结原创 2016-02-18 23:09:13 · 538 阅读 · 0 评论 -
java final修饰成员变量赋值的二种方法
java final修饰成员变量赋值的二种方法原创 2015-11-26 22:03:10 · 5827 阅读 · 0 评论 -
java HashCode()方法理解
java HashCode()方法理解原创 2015-11-24 19:56:23 · 525 阅读 · 0 评论 -
java面试题,一个字符串中的大写变小写,小写变大写,数字不变,其他就变成*
java面试题,一个字符串中的大写变小写,小写变大写,数字不变,其他就变成*原创 2015-11-20 09:55:46 · 6407 阅读 · 0 评论 -
JAVA判断字符串是否为数字
JAVA判断字符串是否为数字原创 2015-07-09 19:02:43 · 857 阅读 · 0 评论 -
java 可变参数
java 可变参数原创 2015-07-09 14:58:22 · 661 阅读 · 0 评论 -
Eclipse背景颜色设置 保护眼睛从这开始
Eclipse背景颜色设置 保护眼睛从这开始原创 2015-07-09 14:15:54 · 899 阅读 · 0 评论 -
Java之CyclicBarrier使用
Java之CyclicBarrier使用原创 2015-06-14 22:44:18 · 658 阅读 · 0 评论 -
Java 信号量 Semaphore 介绍
Java 信号量 Semaphore 介绍原创 2015-06-14 22:33:27 · 704 阅读 · 0 评论 -
java 使用Callable和Future返回线程执行的结果
java 使用Callable和Future返回线程执行的结果原创 2015-06-14 21:56:13 · 782 阅读 · 0 评论 -
java 线程池的原理以及使用
java 线程池的原理以及使用原创 2015-06-14 11:46:43 · 728 阅读 · 0 评论 -
android 多线程访问整数问题,请使用AtomicInteger
android 多线程访问整数问题,请使用AtomicInteger原创 2015-06-13 09:36:58 · 2627 阅读 · 0 评论 -
string 和StringBuffer StringBuilder的区别
string 和StringBuffer StringBuilder的区别原创 2015-06-10 10:44:02 · 1123 阅读 · 0 评论 -
java如何获得JVM可能的总内存,最大内存,以及空闲内存?
java如何获得JVM可能的总内存,最大内存,以及空闲内存?原创 2015-06-10 10:40:20 · 2694 阅读 · 0 评论 -
请用Java设计一个Least Recently Used (LRU) 缓存
请用Java设计一个Least Recently Used (LRU) 缓存原创 2015-06-10 10:26:43 · 1114 阅读 · 0 评论 -
编一个程序,输入10个整数,并放在数组中,先降序输出所有的数,再统计并输出其中正数、负数和零的个数
编一个程序,输入10个整数,并放在数组中,先降序输出所有的数,再统计并输出其中正数、负数和零的个数原创 2015-06-10 09:37:56 · 13392 阅读 · 0 评论 -
使用Java语言实现,自动生成10个整数(1~100,求出生成数列中的最大值和最小值,不允许使用Arrays类的sort方法
使用Java语言实现,自动生成10个整数(1~100,求出生成数列中的最大值和最小值,不允许使用Arrays类的sort方法原创 2015-06-10 09:30:35 · 5446 阅读 · 0 评论 -
java 面试题 请设计一个方法,可以实现获取任意范围内的随机数
java 面试题 请设计一个方法,可以实现获取任意范围内的随机数原创 2015-06-07 09:59:36 · 3191 阅读 · 0 评论 -
Math类概述及其成员方法
Math类概述及其成员方法原创 2015-06-07 09:12:46 · 1129 阅读 · 0 评论 -
java List与array互相转换
java List与array互相转换原创 2015-05-14 19:40:58 · 853 阅读 · 0 评论 -
jav 抽象类,接口作为形参的使用场景
jav 抽象类,接口作为形参的使用场景原创 2015-03-01 22:59:37 · 1307 阅读 · 0 评论