java
nicolelili1
这个作者很懒,什么都没留下…
展开
-
默认和静态接口方法(lumbda对对象进行排序)
默认的方法这个接口关于智能汽车制造业的操作汽车的方法。如果智能汽车制造商想添加方法该怎么办呢?例如给汽车添加会飞的功能?这些制造商需要添加新的方法以便让其余的企业(例如电子制导工具制造商)可以适应该可以飞的汽车。那关于汽车会飞的方法应该添加在哪里呢?如果添加在原来的接口中,所有实现了该接口的程序都需要重写该方法。如果写成静态方法,则程序会认为是一个工具类,而不会认为是一个重要的、核心的翻译 2016-08-26 18:56:18 · 852 阅读 · 0 评论 -
重复注解
重复注解java8的重复注解允许你将同样的注解用在声明或类型上。例如,你写了一个类似于UNIX中的cron服务的服务。该服务运行在特定schedule里,里面有一个在给定时间就运行的方法。现在你想通过设置一个定时器来运行方法,方法doPeriodicCleanup,在每个月的最后一天和每周五的下午11:00运行。通过创建注解@Schedule,并作用于方法doPeriodicCleanup翻译 2016-08-29 15:52:48 · 733 阅读 · 0 评论 -
使用java8新特性流API
问题:在Android Studio中使用流API时总是报错call requires API Leve24,current is ...java8种的核心特性,lambda表达式、函数式接口、流API、默认方法和新的Date以及Time API.Android studio增加了对lumbda表达式的支持。我现在想测试流API,看一下它的用法。Android studio本身原创 2016-09-05 12:14:50 · 4961 阅读 · 5 评论 -
java8 lumbda 、Executors处理线程并发
一、创建新的线程 new Thread(() -> System.out.println("Single Thread Run.............")).start();二、ExecutorService管理无返回值的线程(ExecutorService+runnable)Executos支持运行异步任务,通常管理一个线程池,这样一来我们就不需要手动去创建新的线程。“尝试原创 2016-09-06 18:49:23 · 7651 阅读 · 0 评论 -
java 8 新特性终极指南
编者注:Java 8已经公布有一段时间了,种种迹象表明Java 8是一个有重大改变的发行版。在Java Code Geeks上已经有大量的关于Java 8 的教程了,像玩转Java 8——lambda与并发,Java 8 Date Time API 教程: LocalDateTime和在Java 8中抽象类与接口的比较。我们也在其他地方引用了15个必读的Java 8教程。当然,我们也探转载 2016-09-07 15:25:24 · 549 阅读 · 0 评论 -
io问题
1、1)IP地址和端口号IP地址:用于识别网络中的通信实体,通信实体可以理解为是一台主机,也可以理解成是一台远程打印机,或者是路由器中的某一个端口。现在基于ip协议的网络中,传输的数据必须使用ip地址进行标识。每一个被传输的数据包都包括一个原ip和目标ip。端口号:一个通信实体可以同时有多个通信程序,同时提供网络服务。这时候就需要通过端口号区分开具体的通信程序。一个通信实体不能有两个通转载 2018-01-22 23:37:28 · 568 阅读 · 0 评论 -
多线程
1、①通过调用start()并不是立即运行线程,只是线程变成了可运行状态,并不是执行状态,什么时候运行多线程,是由操作系统决定的②创建一个类并继承thread,重新run方法通过start开启run方法③实现runnable并重写run方法创建runnable对象,并作为参数传递到thread中,通过start方法进行开启转载 2018-01-22 23:37:43 · 170 阅读 · 0 评论 -
异常
io问题1、异常的体系①②error:程序无法处理的错误。error发生的时候,java虚拟机会将程序终止exception:程序本身可以处理。③运行时异常:大多数包括Runtime Exception以及它的一些子类,比如空指针异常,数组越界异常等,这些异常是不检查的异常,程序中可以选择try...catch...,也可以选择不处理,这些异常一转载 2018-01-22 23:38:04 · 188 阅读 · 0 评论 -
反射
1、编译时VS运行时编译时:java代码编译成.class文件的过程,这个过程只纠正语法正确与否,而不涉及内存方面的任何问题运行时:java虚拟机执行.class文件的过程,肯定会涉及内存调用2、Animal:编译时类型new Dog():运行时类型3、4、5、生成一个类就会生成一个.class文件,并生成Class对象,用来转载 2018-01-23 19:57:46 · 148 阅读 · 0 评论 -
MVC架构、MVP架构、MVVM架构
一、MVC架构1、MVC定义Model、View、Controller :模型、视图、控制器的缩写,是一个软件的设计典范,它是用一种业务逻辑、数据、界面显示分离的方法组织代码,然后可以将业务逻辑聚集到一个部件里面。在Android的开发框架中,曾经采用的是MVC的框架模式,采用MVC模式的一个好处就是便于ui界面的显示核业务逻辑的分离。具体来说:M Modle层用来用户逻辑的转载 2018-01-23 20:56:18 · 424 阅读 · 0 评论 -
插件化
1、插件化的来由65536/64k从技术上说,业务逻辑的复杂,导致代码集聚地膨胀,当方法数超过65536后就无法创建新的方法。从功能上来数,功能模块的解耦,以及维护团队的分离,其实是大势所趋,每个团队都会维护app中不同的业务模块,如果每个模块升级都需要对整个app进行升级,效率会很低。h5、hybird虽然可以解决,但在性能上比不了native的app,Facebook推出了ru转载 2018-01-23 21:55:54 · 251 阅读 · 0 评论 -
热更新
1、线上的apk都会发生崩溃,只要崩溃率在千分之一之下就可以,但是如果超过该比率,就需要马上进行修改。但是正常流程会很长很繁杂。热更新就是为了解决这些问题的。2、Dexposed:基于xpostAndFix:只专注于热更新,比Dexposed性能上更好Nuwa:基于类加载器加载classloader,将一个dex文件拆分成多个dex文件,在应用启动的时候,会将一转载 2018-01-23 22:26:35 · 602 阅读 · 0 评论 -
注解
1、什么是注解?提供了一种安全的类似注释机制,它其实是对代码的一种注释,用来对任何的信息和元数据进行关联,它为程序的元素(类、方法、成员变量)加上更加直观明了的说明,这些注释是和程序开发的业务逻辑没有关系的,同时也提供了指定的工具和框架来进行注解的使用。2、3、①override:复写②deprecatd:过时③suppresswarnnings转载 2018-01-22 23:38:29 · 245 阅读 · 0 评论 -
类加载器
1、2、①BootStrap ClassLoader:启动类的类加载器,负责加载jdk放在li目录下的文件,是一个能够被虚拟机识别的类②Extension ClassLoader:扩展加载器,主要负责加载jre目录下的ext的目录,可以直接使用这个类加载器③APP ClassLoader:应用程序的类加载器,它负责加载用户目录下可执行的类,这个类加载器也可以转载 2018-01-23 18:13:02 · 160 阅读 · 0 评论 -
java堆/栈
1、java程序运行时的内存分配策略①静态分配:使用空间位于静态存储区,也就是方法区。这块内存在程序编译的时候就已经分配好了,并且在整个程序运行期间都会存在。这是和堆栈最大的不同②栈分配:使用空间位于栈区。方法执行的时候,方法体内的局部变量在栈上都会创建,并且在方法执行之后,这些内存都会被释放。栈内存分配运算置于处理器的指令集中。效率很高,但是分配的内存容量有限。③堆分配:使用空间位于转载 2018-01-23 18:37:10 · 137 阅读 · 0 评论 -
进程保活
1、让进程在系统中永远存在,怎么杀都杀不死,就算杀死了,仍然有办法让它保活起来。这不是流氓手段,因为很多情况下要为用户提供服务,需要有一个进程常驻着,以便在特定的时候做些特定的事情。频繁接收的广播只能动态注册,比如Android的锁屏广播接收者,这时如果没有常驻的进程,就无法接收到常驻的广播。还有一些push、定位服务等,也需要在后台维护一个长的连接,以便在最及时的时间内将信息传达给用户。比如转载 2018-01-23 23:53:05 · 2520 阅读 · 0 评论 -
ImageLoader调用过程
1、使用方法以下是源码2、如何displayImage①将imageview转换成ImageViewAware来实现的②主要是对ImageView进行了封装,并将其强引用改为了弱引用,当内存不足的时候,可以对其进行回收③获取imageview的宽、高,以便于对其进行裁剪④displayImage最终的方法转载 2018-01-23 23:53:39 · 326 阅读 · 0 评论 -
注解
1、2、3、4、①②③5、6、元注解:给注解添加的注解7、②③④⑤8、②③④⑤9、10、转载 2018-02-02 22:22:12 · 282 阅读 · 0 评论 -
java堆、栈、方法区、bit、byte及图片在内存中的大小
一、java中类型所占字节数以及可表示的数字个数基本概念字节的单位是byte。位的单位是bit。1byte=8bit。1bit能表示多少个数字——最小0,最大1。2的1次方个。2bit能表示多少个数字——最小00,最大11。2的2次方个。3bit能表示多少个数——最小000,最大111。2的3次方个。依此类推—8bit可以表示2的8次方共256个数字。若数没有正转载 2018-02-02 22:22:27 · 1283 阅读 · 0 评论 -
java多线程之内存可见性之volitile
1、2、3、4、5、6、保证number++原子性的操作7、8、转载 2018-02-08 23:23:07 · 430 阅读 · 0 评论 -
多线程
1、2、3、线程的交互方式包括互斥、同步4、5、6、② 7、8、9、②10、转载 2018-02-08 23:23:15 · 170 阅读 · 0 评论 -
java反射
1、2、3、4、转载 2018-02-08 23:23:25 · 246 阅读 · 0 评论 -
Android通用框架设计与完整电商APP开发二项目初始化
一、项目基础1、创建项目修改完成后2、修改具体项目的module名字3、创建annotationmodule,一定要选择javalibrary。因为它的注解里面会使用很多标准的Java sdk的注解类,这个时候Android liabrary是找不到这些类的module名字,并取消勾选create .gitignore file..g...转载 2019-04-12 15:43:43 · 1337 阅读 · 0 评论 -
LeetCode 279. Perfect Squares
Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n.Example 1:Input: n = 12Output: 3 Explanation: 12 = 4 + 4 + 4.Example...转载 2019-04-12 15:30:34 · 117 阅读 · 0 评论 -
剑指offer 17、 重建二叉树
输入一棵二叉树前序遍历和中序遍历的结果,请重建该二叉树。注意:二叉树中每个节点的值都互不相同; 输入的前序遍历和中序遍历一定合法;样例给定: 前序遍历是:[3, 9, 20, 15, 7] 中序遍历是:[9, 3, 15, 20, 7] 返回:[3, 9, 20, null, null, 15, 7, null, null, null, null] 返回的二叉树如下所示: 3...转载 2019-04-12 15:51:20 · 74 阅读 · 0 评论 -
剑指offer19、求1+2+…+n
求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。样例输入:10输出:55C++代码:class Solution {public: int getSum(int n) { int sum=n; n>0&&(sum=...转载 2019-04-12 15:51:09 · 114 阅读 · 0 评论 -
Handler源码讲解
1、2、3、4、handler.send()或者handler.post()的方案,是发送消息,并添加到消息队列里面来。在app启动的时候,主线程的loop已经在滚动了,滚动的时候带着messagequeue不停地轮询,当通过handler发送消息的时候,会将消息放入已经在轮询的消息队列中去。然后在messagequeue里面,轮询调用next(),调用...转载 2019-04-12 15:47:42 · 90 阅读 · 0 评论 -
LeetCode 347. Top K Frequent Elements
Given a non-empty array of integers, return the k most frequent elements.Example 1:Input: nums = [1,1,1,2,2,3], k = 2Output: [1,2]Example 2:Input: nums = [1], k = 1Output: [1]Note: Yo...转载 2019-04-26 23:40:30 · 167 阅读 · 0 评论 -
LeetCode 23 Merge k Sorted Lists
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.Example:Input:[ 1->4->5, 1->3->4, 2->6]Output: 1->1->2->3->4-...转载 2019-04-27 00:23:36 · 107 阅读 · 0 评论 -
启动优化工具traceview
1、2、3、查看生成的traceview文件最上面蓝色部分“Cpu usage details unabailable”是时间选择范围,是通过代码精确指定的,上面的时间标志是时间戳Thread(32)表明有32个线程,可以点击任何一个线程进行查看4、点击BUGLY_THREAD可以查看该线程所做的所有的事情,可以看到线程的总数,也可以看到线程在...转载 2019-04-12 15:40:51 · 183 阅读 · 0 评论 -
启动优化工具systrace
1、2、3、4、5、phython脚本:参数:-b:buffer,要收集多少。比如traceview默认大小是8M,sytemtrace也可以限制大小-t:是时间的一个概念-a:要监测的包名-o:生成的文件名6、在程序中生成的文件7、双击查看该文件8、Kemel:说明CPU是八核的而且有的cpu不...转载 2019-04-12 15:40:43 · 511 阅读 · 0 评论 -
剑指offer1、替换空格 请实现一个函数,把字符串中的每个空格替换成" 20"。(java版)
请实现一个函数,把字符串中的每个空格替换成"%20"。你可以假定输入字符串的长度最大是1000。注意输出字符串的长度可能大于1000。样例输入:"We are happy."输出:"We%20are%20happy."代码:class Solution { public String replaceSpaces(StringBuffer str) {...原创 2019-04-12 15:41:47 · 345 阅读 · 0 评论 -
LeetCode 27. Remove Element
Given an array nums and a value val, remove all instances of that value in-place and return the new length.Do not allocate extra space for another array, you must do this by modifying the input arra...转载 2019-04-12 15:40:04 · 90 阅读 · 0 评论 -
LeetCode 26. Remove Duplicates from Sorted Array
Given a sorted array nums, remove the duplicates in-place such that each element appear only once and return the new length.Do not allocate extra space for another array, you must do this by modifyi...转载 2019-04-12 15:39:55 · 66 阅读 · 0 评论 -
LeetCode 226. Invert Binary Tree(反转二叉树)
Invert a binary tree.Example:Input: 4 / \ 2 7 / \ / \1 3 6 9Output: 4 / \ 7 2 / \ / \9 6 3 1Trivia:This problem was inspired by this origin...转载 2019-04-12 15:47:31 · 82 阅读 · 0 评论 -
LeetCode 100. Same Tree(比较两个二叉树是否相同)
Given two binary trees, write a function to check if they are the same or not.Two binary trees are considered the same if they are structurally identical and the nodes have the same value.Example ...转载 2019-04-12 15:47:20 · 124 阅读 · 0 评论 -
LeetCode 101. Symmetric Tree(二叉树是否是自己的镜像,即以中心对称)
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree [1,2,2,3,4,4,3] is symmetric: 1 / \ 2 2 / \ / \3 4 4 3...转载 2019-04-12 16:00:52 · 159 阅读 · 0 评论 -
LeetCode 222. Count Complete Tree Nodes(求完全二叉树节点的个数)
Given a complete binary tree, count the number of nodes.Note: Definition of a complete binary tree from Wikipedia:In a complete binary tree every level, except possibly the last, is completely fi...转载 2019-04-12 16:00:42 · 123 阅读 · 0 评论 -
LeetCode 110. Balanced Binary Tree(是否是平衡二叉树)
Given a binary tree, determine if it is height-balanced.For this problem, a height-balanced binary tree is defined as:a binary tree in which the depth of the two subtrees of every node never diff...转载 2019-04-12 16:00:30 · 101 阅读 · 0 评论 -
剑指offer2之从尾到头打印链表,输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值
输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值。返回的结果用数组存储。样例输入:[2, 3, 5]返回:[5, 3, 2]从后往前打印,跟栈结构的先进后出类似,使用栈来实现/** * Definition for singly-linked list. * class ListNode { * int val; * ...转载 2019-04-12 15:41:37 · 644 阅读 · 0 评论