# 新浪
ArrayList 和 LinkedList 的区别,它们哪个插入元素是可重复的和不可重复的,哪个是线程安全的
数据结构中有一个哈希表 HashMap,它是不是线程安全的,怎么变成线程安全的
List 中存入数据,例如 int 类型的数据,是直接存入 int 类型吗?
不是,因为存在自动装箱与拆箱,所以是存入它们的引用类型。
最近看过什么技术书,说说 MVC、MVP 和 MVVM
图片框架的缓存机制。
Glide 如果加载 9 张图片,那么是从上往下加载吗?
除了 Http 连接和 TCP 连接之外,还有什么连接
RxJava 和 Retrofit 用到的一些基本的方法
RxJava 的三个概念:
- Observable:被观察者(主题 Subject)
- Observer/Subscriber:观察者
- Subscribe:订阅
Observable 和 Observer 通过 subscribe() 方法实现订阅关系
使用的一种简单方法:
- 创建被观察者 Observable
public Observable<String> getObservable() { return Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(ObserableEmitter e) throws Exception { // 只需要三个方法 onNext | onError | onCompleted e.onNext(""); e.onNext(""); e.onComplete(); // e.onError(); } }) }
- 创建观察者 Observer
public Observer<String> getObserver() { return new Observer<String>() { @Override public void onError(Throwable e) { // 发生错误时调用 } @Override public void onComplete() { // 数据接收完成时调用 } @Override public void onSubscribe(Disposable d) { // 移除订阅关系 // d.dispose(); // 判断是否取消订阅关系 // d.isDisposed(); } @Override public void onNext(String s) { // 正常接收数据时调用 } } }
- 订阅
Observable<String> observable = getObservable(); Observer<String> observer = getObserver(); // 关联观察者和被观察者 -> 订阅 observable.subscribe(observer);
Retrofit 的使用方法:
- 创建接口,设置请求类型和参数,例如
@GET("userInfo/login") Call login(@Query("username") String username, @Query("password") String password);
- 创建 Retrofit 对象,设置数据解析器等
Retrofit retrofit = new Retrofit.Builder().baseUrl(BASE_URL).addConverterFactory(GsonConverterFactory.create()).build();
- 生成接口对象,调用接口方法获取 Call 对象
My my = retrofit.create(My.class); Call call = my.login("", ""); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { } @Override public void onFailure(Call call, Throwable e) { } })
TCP 的三次握手
了解什么 Jetpack 组件吗
LifeCycle、ViewModel、LiveData、Paging、Room、Navigation、DataBinding等
了解 Comparable 接口吗
Comparable & Comparator 接口都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序。
git merge
和git rebase
的区别使用了哪种 Git 图形界面客户端
SourceTree