随笔分类 - Java
摘要:最近在写硕士大论文,用SpringBoot简单搭了个平台,用了前后端分离的思想。在写Api接口的时候发现的这个问题。有些Api只能登录且特定角色能访问,做了安全限制,这里有认证和授权的区别。 认证 (authentication) 用户名和密码登录一个角色这就是认证,证明你是谁 授权 (author
阅读全文
摘要:这是京东面试官问的一个问题,我说了下用用AS打包的流程,然后他想问的是控制台打包的流程是怎么样的。 appt将资源文件打包为R.java aidl文件转为java文件 javac对java文件进行编译生成.calss文件 将.class转化为dex文件 整合资源文件,打包为apk 签名 内存对齐处理
阅读全文
摘要:一面 Apk打包流程 View事件分发流程 Glide三级缓存,LruCache缓存实现原理 Https和Http的区别,非对称加密和对称加密的区别,私钥加密公钥解密可以用来做什么 Fragment的生命周期,replace后的生命周期 问项目,奖项 反问环节
阅读全文
摘要:一面是上星期面的,没有录音,有点忘了问的什么 一面(1h4min) Android和Java基础 A,B两个100G的文件,只有2G内存,求公共子集 多个人给一个人发送消息,建立了几个TCP连接 二面(54min) 电梯项目 线程池内部原理,用过哪几个,核心线程和非核心线程的区别(答的不好,没仔细研
阅读全文
摘要:一面 线程和进程区别 Https加密过程 Glide三级缓存原理,如何切到主线程运行,几个线程池 Glide的优点和其他图片加载框架的比较 死锁条件,死锁解决 HashMap和LinkedHashMap的区别,底层实现 深拷贝和浅拷贝,实现方法 类加载机制,双亲委派 TCP三次握手,少一次会怎么样
阅读全文
摘要:这是百度面试官问的一个问题,当时没答上来。我们知道AIDL底层是基于Binder机制通信的,而Binder本身是C/S架构的。Activity写个AIDL接口可以实现跟Service的通信,那么Service如何主动回调或者主动推送消息到Activity呢? 定义通信接口 这个接口是Activity
阅读全文
摘要:Java层入口 对要在C层实现的方法加native修饰符 public class NDKTools { static { System.loadLibrary("ndktest-jni"); } public static native String getStringFromNDK(); } A
阅读全文
摘要:使用方法 Timer是一个定时任务触发装置,设置任务,触发延时和触发间隔就可以定时执行任务。以下是个简单的输出任务,每隔1000ms执行一次。 public class TimerLearn { public static void main(String[] args) { Timer timer
阅读全文
摘要:多线程编程中耗时线程是很常见的情况,有时候我们不得不在一个线程中去终止另一个耗时线程。JDK并不推荐直接停止比如this.stop(),这会导致一些异常,比如锁未释放程序一直死锁。JDK推荐使用一个线程去通知耗时线程该结束线程了,耗时线程做退出前的回收处理然后自己结束线程。 自定义标志位终止 使用v
阅读全文
摘要:强引用 在Java中使用如下方式声明的引用是强引用 String str = new String("abc"); str 是堆中对象new String("abc")的强引用,被强引用的对象在任何时候gc不会被回收,即使内存不足汇报OOM。 软引用 在Java中使用如下方式声明的引用是软引用 So
阅读全文
摘要:这道题是字节的面试题,当场问我有点紧张没想出来,只答上来要交替阻塞,还是面试官提醒我用生产者消费者思路解决。 题目 有A类线程50个,任务是打印字符A。有B类线程50个,任务是打印字符B。现在异步启动这100个线程,问如何才能让他们交替打印AB字符? 解题思路 设两个信号SemaphoreA和Sem
阅读全文
摘要:泛型对象可以实例化吗? 不可以,T t=new T()是不可以的,编译器会报错。由于泛型擦除,编译器在编译时无法确定泛型所对应的真实类型 解决方法 使用反射新建实例 Type superclass = getClass().getGenericSuperclass(); ParameterizedT
阅读全文

浙公网安备 33010602011771号