![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 71
筱筱_
平静如水的生活,是否该逆流而上?
展开
-
「省略…」中间文本自适应省略实现
产生原因:公司现有需求要求有其中一段文本自适应,之前经验以为不管在什么布局里面,内容只要设置了宽度就一定会显示出来,事实证明,会被文本内容挤走,所以设置的父容器的宽度实质上只是容器宽度,而不是实质的内容宽度,举例如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width=原创 2021-02-01 17:51:11 · 276 阅读 · 0 评论 -
Java的private,default,public,protected
public:可以被所有其他类所访问private:只能被类内部访问,如匿名内部类,内部类,静态内部类只能访问静态元素。protected:当前类,子类,同一包下类访问default:当前类,同一包中的类可以访问,声明时没有加修饰符。...原创 2020-12-13 21:20:27 · 101 阅读 · 0 评论 -
Java基础-int值和对象值
public static void main(String[] args) { Integer i = new Integer(100); Integer j = new Integer(100); int k = 100; Integer m = 100; Integer n = 100; System.out.println(i == j); System.out.println(k == i); System.out.println(原创 2020-12-07 21:26:49 · 218 阅读 · 0 评论 -
Handler消息机制
ThreadLocal中存放的是ThreadLocalMap1.为什么要使用handler?主线程不能执行耗时操作,否则会anr,所以需要用到多线程,如何让知道子线程中的任务何时完成,如何在子线程之间传递数据?所以使用handler实现线程间通信。线程安全主要是通过ThreadLocal实现的1.Handler 的基本原理?handler在子线程中通过sendmessage或者post发送消息到消息队列,然后looper通过looper.loop循环不停的从消息队列出取出消息,然后通原创 2020-12-04 15:29:45 · 225 阅读 · 1 评论 -
Android自定义View事件分发机制
1.为什么会有事件分发机制?因为在Activity中会有多个view重叠,当点击屏幕上的某个点时,需要知道是谁去处理这个事件。2.事件分发的是什么?什么是事件序列?TOUCH事件,事件序列指的是从用户点击屏幕开始到结束,中间产生的一系列的事件。3.事件有几种类型?MotionEvent.ACTION_DOWN 按下时产生的事件 MotionEvent.ACTION_MOVE 滑动时产生的事件 MotionEvent.ACTION_UP 抬起时产生的事件 MotionEvent.AC原创 2020-12-04 12:03:53 · 246 阅读 · 0 评论 -
Android自定义view面试
1.view绘制流程:measure,layout,drawmeasure:onMeasure,measureChild,measureChildren,setMeasureDimesion先测量子view的大小,最后测量自身的大小layout:onLayout,setFrame先确定自身的位置,然后调用child.layout()确定子类位置getLeft,getRight都是相对父控件的位置,相对原点的位置是getRawXMeasureSpec:32位,父类传递过来的值和自己的LayoutP原创 2020-12-03 22:00:06 · 1334 阅读 · 0 评论 -
Java基础
基本类型:int,short,long,byte,double,float,char,boolean引用类型:类,接口,数组,注解,枚举Java的String和StringBuffer和StringBuilder区别:String:是final类,不可更改,所以在代码里一段拼接文本最好不使用+=,因为会创建两个对象。StringBuffer是线程安全的,每一个方法都通过synchronized加锁所以平常使用比较多的是StringBuilder,如果要求线程安全会使用StringBuffer原创 2020-12-03 13:31:25 · 92 阅读 · 0 评论 -
Java-括号配对算法
public boolean bracket(String s) { Stack<Character> stack = new Stack(); char[] chars = s.toCharArray(); for (int i = 0; i < chars.length; i++) { if (chars[i] == '(' || chars[i] == '[') { stack.push(chars[i]); .原创 2020-12-02 17:19:18 · 182 阅读 · 0 评论 -
数据结构-判断单链表是否有环-java
//set集合 public boolean hasCycle(ListNode head) { if (head == null || head.next == null) { return false; } Set<ListNode> listSet = new HashSet<>(); while (head != null) { if (listSet.con.原创 2020-12-02 15:53:46 · 82 阅读 · 0 评论 -
数据结构-单链表反转-java
1.递归法:时间复杂度O(n)递归的时间复杂度一般看层数,这个层数是n层,每层执行一次操作,所以是O(n)/*原理:把当前结点看做需要递归反转的点*/ public ListNode reverseList(ListNode head) { if(head == null || head.next == null){ return head; } ListNode curr = reverseList(head.nex原创 2020-12-02 15:21:02 · 112 阅读 · 0 评论 -
数据结构-单链表交换相邻两个元素-java
1.递归法:时间复杂度O/*原理:对每一个结点进行反转*/ public ListNode reverseList(ListNode head) { if(head == null || head.next == null){ return head; } ListNode curr = reverseList(head.next); head.next.next = head; head原创 2020-12-02 13:18:54 · 969 阅读 · 0 评论 -
数据结构-单链表的头插法、尾插法建立及遍历
//创建结点类class ListNode { int data; ListNode next;}/*头插法头插法原理:定义一个head头结点,之后添加元素在头节点和已有元素之间。*/public ListNode createListHead() { ListNode head = new ListNode(); head.next = null; for (int i = 1; i <= 5; i++) {原创 2020-12-02 11:58:35 · 2432 阅读 · 1 评论 -
java设计模式
2.单例设计模式: 原理: 懒汉式:私有化构造,直接new对象,对外提供获取方法; 饿汉式:私有化构造,先定义对象,但是不初始化。在获取方法里面判断对象是否为空,为空再新建。 (饿汉式容易出现线程安全问题,获取方法上要加synchronize,一般不用饿汉式,两种方法的构造都要加static...原创 2018-02-24 09:51:52 · 95 阅读 · 0 评论 -
volatile关键字的原理、使用场景
在之前学习单例的时候,看到定义变量的时候需要加上这个关键字,所以对于这个关键字查阅了一番资料进行整理。volatile是Java提供的一种轻量级的同步机制,同synchronized相比(synchronized通常称为重量级锁)。synchronized 所有加上synchronized 和 块语句,在多线程访问的时候,同一时刻只能有一个线程能够执行synchronized 修饰的方...原创 2019-07-26 15:12:18 · 543 阅读 · 0 评论 -
java面试常识
throw和throws的区别:1.throws要跟在方法的后面 throw用在方法里2.throw后面只能跟一个具体的异常,throws可以抛出多个异常,多个异常用逗号分隔,一般不用,这是帮助理解系统建立异常用的过程3.throws抛出的异常有可能发生也有可能不发生.throw异常一定会发生单例设计模式 懒汉式中锁的作用:解决并发访问的线程安全问题。dom:把整个XML文档放入内存,适合XML...原创 2018-02-23 18:07:46 · 123 阅读 · 0 评论