求职问题
文章平均质量分 73
由此及彼
代码可以更优雅。
展开
-
苹果面试过程中求职者可能遇到的问题
下面是8个苹果面试过程中求职者可能遇到的问题,以及已经被各路聪明的求职者破解的答案。转载 2014-06-27 22:22:59 · 780 阅读 · 0 评论 -
腾讯2017暑期实习生编程题
给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。输入描述:输入数据有多组,每组包含一个字符串s,且保证:1输出描述:对于每组数据,输出一个整数,代表最少需要删除的字符个数。输入例子:abcdagoogle输出例子:22转载 2016-07-11 22:17:35 · 480 阅读 · 0 评论 -
腾讯高级工程师:一道面试题引发的高并发性能调试思考
4月份的时候看到一道面试题,据说是腾讯校招面试官提的:在多线程和高并发环境下,如果有一个平均运行一百万次才出现一次的bug,你如何调试这个bug?(知乎原贴地址如下:https://www.zhihu.com/question/43416744) 遗憾的是知乎很多答案在抨击这道题本身的正确性,虽然我不是这次的面试官,但我认为这是一道非常好的面试题。当然,只是道加分题,答不上转载 2016-09-03 10:08:16 · 832 阅读 · 0 评论 -
算法之乐:一个算法解决3道经典二叉树面试题(深度、长度、直径)
有了昨天《Java实现二叉树的构建以及3种遍历方法》的二叉树数据结构基础,今天我们通过一个算法解决3道关于二叉树的经典面试题(深度、长度、直径),触类旁通,举一反三,尽享算法之乐。测试二叉树:例题:给定一个二叉树,计算它的最大深度。深度是指根节点到子节点路径中的节点个数。如图,1->8/9的深度为4(1-2-4-8/9),这也是这棵二叉树的最大深度。我们定义一个Result原创 2016-10-09 14:59:26 · 957 阅读 · 0 评论 -
你不可不知的static(2)-内存图解
承接昨天的文章《你不可不知的static(1)-引入及特点》,正所谓不去探究内存的程序员不是好工程师。我们开始今天的内存图解。现结合代码,从栈、堆、方法区进行分析,进一步体会static的内涵。简写代码:class Person{private String name;private int age;private static Stringcoun原创 2016-10-09 20:00:49 · 387 阅读 · 0 评论 -
400% 的飞跃-web 页面加载速度优化实战
前言一个网站的加载速度有多重要? 反正我相信之前来博主网站的人至少有 50% 在加载完成前关闭了本站。 为啥捏? 看图首页完整加载时间 8.18s,看来能进来看博主网站的人都是真爱呀,哈哈。 正常来讲一个网页 4s 加载不完就会流失很大一部分用户,而博主的网站加载时间竟然达到了 8s 还是在电脑端,如果在移动端,加载时间会更久,体验会更差。 这样的话网站做得再难看批判者进不转载 2016-10-10 10:05:59 · 429 阅读 · 0 评论 -
你不可不知的static(3)-注意事项、区别成员变量、静态main
今天我们一起学习一下static的注意事项、和成员变量的区别以及静态main方法。(1)注意事项;A:在静态方法中没有this对象B:静态只能访问静态,非静态可以访问静态(代码测试)我们在Person类中添加如下代码: int thisNum = 100; static int thisNumStatic = 200; public void show(){ Syste原创 2016-10-10 14:12:07 · 461 阅读 · 0 评论 -
Android之NetworkOnMainThreadException异常
看名字就应该知道,是网络请求在MainThread中产生的异常先来看一下官网的解释:Class OverviewThe exception that is thrown when an application attempts to perform a networking operation on its main thread.Thi转载 2016-10-10 17:40:02 · 269 阅读 · 0 评论 -
10min实现一个简易网站源码查看器(HttpURLConnection、ScrollView)
今天我们主要使用HttpURLConnection类(网络传输)和ScrollView(上下滚动)做一个简易的网站源码查看器。先写一个布局文件,EditText接收输入的网站路径,Button触发操作,ScrollView(包含一个TextView)用于显示网页源码。特别值得一提的是ScrollView只能有一个孩子,那么如果我想在ScrollView中展示多个控件(TextView、原创 2016-10-10 18:03:19 · 686 阅读 · 0 评论 -
两分钟彻底让你明白Android Activity生命周期(图文)
大家好,今天给大家详解一下Android中Activity的生命周期,我在前面也曾经讲过这方面的内容,但是像网上大多数文章一样,基本都是翻译Android API,过于笼统,相信大家看了,会有一点点的帮助,但是还不能完全吃透,所以我今天特意在重新总结一下. 首先看一下Android api中所提供的Activity生命周期图(不明白的,可以看完整篇文章,在回头看一下这个图,你会明白的):转载 2016-10-21 19:33:10 · 244 阅读 · 0 评论 -
你不可不知的final(1)-引入及特点
导言:final,"最终"、“不可变性”,xxx是工程师精心设计的艺术品!艺术品易碎!用final就是拒绝修改,防止世界被熊孩子破坏,维护世界和平!谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。首先是final的引入,为什么要有fina原创 2016-10-11 17:54:30 · 277 阅读 · 0 评论 -
初识Volley:JsonObjectRequest、StringRequest、RequestQueue
Volley的中文翻译为“齐射、并发”,是在2013年的Google大会上发布的一款Android平台网络通信库,具有网络请求的处理、小图片的异步加载和缓存等功能,能够帮助 Android APP 更方便地执行网络操作,而且更快速高效。适用场景:Volley:数据量小,网络通信频繁的操作,即时通信、社交等应用;XUtils:大文件上传与下载等以及各种工具类的使用,电商、社区等应用。原创 2016-09-26 16:14:07 · 479 阅读 · 0 评论 -
手把手教你搞懂Android反编译
前言反编译别人的程序不是什么值得炫耀的事,希望大家最好只是兴趣探索,而不是利益驱动。本文主要目的是绕开一个简单的激活程序。什么是反编译我们知道,Android的程序打包后会生成一个APK文件,这个文件可以直接安装到任何Android手机上,因此,反编译就是对这个APK进行反编译。Android的反编译分成两个部分:一个是对代码反编译,也就是java文件的反编译。转载 2016-10-11 21:59:18 · 426 阅读 · 0 评论 -
类与接口错综复杂的关系
今天我们一起学习一下类与接口之间错综复杂的关系,类与类,类与接口,接口与接口;继承还是实现?多继承还是多实现?以及终极问题,抽象类和接口的区别?我们先看第一个问题,类与类,类与接口,接口与接口之间错综复杂的关系:A:类与类之间的继承关系,只能单继承,可以多层继承。B:类与接口之间的实现关系,可以单实现,也可以多实现。还可以在继承一个类的同时,实现多个接口。C:接口与接口的关系呢原创 2016-10-22 15:44:53 · 275 阅读 · 0 评论 -
mvp架构模式
喜欢NBA的人可能很容易就想到了最有价值球员。但是此mvp非彼MVP,此mvp指的是现在Android开发中比较常见的一种软件架构模式。mvp架构模式是Google官方推荐的架构模式,特别是近年来的新项目,mvp+retrofit+rxjava+dragger2配合使用已经在引领程序界的潮流了,在github上可以轻易的搜到一大堆这样的开源项目。前端时间笔者也在公司的一个sdk上进行了尝试,在此算转载 2016-10-22 17:06:48 · 362 阅读 · 0 评论 -
Queue的那些事(remove/poll, add/offer, element/peek)
简而言之:多用offer、poll、peek。offer,add区别:一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,多出的项就会被拒绝。这时新的 offer 方法就可以起作用了。它不是对调用 add() 方法抛出一个 unchecked 异常,而只是得到由 offer() 返回的 false。 public boolean offer(E e)原创 2016-09-26 22:12:17 · 583 阅读 · 0 评论 -
你不知道的TextView实现原理
在前面一个系列的文章中,我们以窗口为单位,分析了WindowManagerService服务的实现。同时,在再前面一个系列的文章中,我们又分析了窗口的组成。简单来说,窗口就是由一系列的视图按照一定的布局组织起来的。实际上,每一个视图都是一个控件,这些控制可以将自己的UI绘制在窗口的绘图表面上,同时还可以与用户进行交互,即获得用户的键盘或者触摸屏输入。在本文中,我们就详细分析窗口控件的上述实现原理。转载 2016-09-27 09:56:43 · 506 阅读 · 0 评论 -
Android Volley完全解析(一),初识Volley的基本用法
1. Volley简介我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据。Android系统中主要提供了两种方式来进行HTTP通信,HttpURLConnection和HttpClient,几乎在任何项目的代码中我们都能看到这两个类的身影,使用率非常高。不过HttpURLConnection和Http转载 2016-09-27 10:27:31 · 245 阅读 · 0 评论 -
Android Volley完全解析(二),使用Volley加载网络图片
在上篇文章中有提到过,Volley是将AsyncHttpClient和Universal-Image-Loader的优点集成于一身的一个框架。我们都知道,Universal-Image-Loader具备非常强大的加载网络图片的功能,而使用Volley,我们也可以实现基本类似的效果,并且在性能上也豪不逊色于Universal-Image-Loader,下面我们就来具体学习一下吧。1. Ima转载 2016-09-27 11:23:17 · 247 阅读 · 0 评论 -
算法优解(2)-猫狗队列
来自左神书中的一道题,不过左神的Java代码有几个问题,自己亲自Coding实现了一遍,麻烦小伙伴们帮忙转转,让左神下一版时能纠正这个错误,另,转载请注明出处哈。题目:已知有宠物、狗、猫类如下,实现一种猫狗队列的结构,要求实现add、pollAll、pollDog、pollCat、isEmpty、isDogEmpty、isCatEmpty等方法。class Pet { private原创 2016-09-27 14:22:36 · 1063 阅读 · 1 评论 -
回顾JavaSE(4)-String(3)四行代码分析String字面值对象和构造方法对象的内存分配
今天我们通过四行代码分析String字面值对象和构造方法创建对象的不同,附上内存分配图,深入理解。首先,必须明确:==:若是引用类型,比较的是地址值是否相同。equals:若是引用类型,默认比较的是地址值是否相同,但Sting类重写了equals方法,比较内容是否相同。然后,我们写一下代码: String s9 = new String("Hello"); String原创 2016-09-21 20:16:54 · 315 阅读 · 0 评论 -
回顾JavaSE(5)-String(4)7行代码分析一道关于String拼接的经典面试题
看了最近几个String系列的小伙伴可能会很纳闷,这么简单的东西有必要写一篇博客吗?是不是有点浪费感情?然而并不会,平心而论,看完代码秒出结果,并且是正确的结果,必须要有深厚的JavaSE功底,这样的人,不多。今天我们通过7行代码分析一道关于String拼接的经典面试题。请先看代码: String s11 = "Hello"; String s12 = "World"; S原创 2016-09-22 19:39:50 · 345 阅读 · 0 评论 -
回顾JavaSE(6)-String(5)String API 判断功能
今天我们依旧探索String API,重点看一下String类的判断功能,主要是测试如下几个方法。重点说一下isEmpty(),请区分内容为空和对象为空。lbooleanequals(Objectobj)lbooleanequalsIgnoreCase(Stringstr)lbooleancontains(Stringstr)lboolean原创 2016-09-23 13:40:51 · 277 阅读 · 0 评论 -
Android中的getDimension()
在自定义控件中使用自定义属性时,经常需要使用java代码获取在xml中定义的尺寸,相关有以下三个函数getDimension()getDimensionPixelOffset()getDimensionPixelSize()(在类TypedArray和类Resources中都有这三个函数,功能类似,TypedArray中的函数是获取自定义属性的,Resources中转载 2016-11-03 20:09:27 · 3243 阅读 · 0 评论 -
Android字体大小多屏幕适配
在android中,我们有两种情况可以设置字体大小。一种是在xml页面中,另一种是在Java代码中。 [html] view plain copy TextView android:id="@+id/hello_word" android:layout_width="wrap_content"转载 2016-11-03 20:12:09 · 811 阅读 · 0 评论 -
Android Volley完全解析(三),定制自己的Request
经过前面两篇文章的学习,我们已经掌握了Volley各种Request的使用方法,包括StringRequest、JsonRequest、ImageRequest等。其中StringRequest用于请求一条普通的文本数据,JsonRequest(JsonObjectRequest、JsonArrayRequest)用于请求一条JSON格式的数据,ImageRequest则是用于请求网络上的一张图片转载 2016-09-27 19:24:42 · 291 阅读 · 0 评论 -
JavaSE:1min讲解引用类型参数(1)-类
参数包括基本类型和引用类型,基本类型没什么好说的,今天我们要说的是引用类型,第一篇文章说的是类作为参数。我们定义一个学生类,并在里面定义一个学习方法:class Student{ public void study(){ System.out.println("Day Day Study."); }}然后我们在main方法中调用: public static void m原创 2016-10-24 16:48:33 · 247 阅读 · 0 评论 -
Java中的参数传递方式
无论是什么语言,要讨论参数传递方式,就得从内存模型说起,主要是我个人觉得从内存模型来说参数传递更为直观一些。闲言少叙,下面我们就通过内存模型的方式来讨论一下Java中的参数传递。这里的内存模型涉及到两种类型的内存:栈内存(stack)和堆内存(heap)。基本类型作为参数传递时,传递的是这个值的拷贝。无论你怎么改变这个拷贝,原值是不会改变的。看下边的一段代码,然后结合内存模型来说明问题:转载 2016-10-24 16:56:38 · 243 阅读 · 0 评论 -
Java-String类型的参数传递问题
刚才看见一个兄弟在为Java的String传值/传引用问题困惑,翻箱倒柜找到了这篇我很久以前写的文章,发在这里,希望能对迷惑的朋友有些帮助。 提要:本文从实现原理的角度上阐述和剖析了:在Java语言中,以String作为类型的变量在作为方法参数时所表现出的“非对象”的特性。 一、最开始的示例写代码最重要的就是实践,不经过反复试验而得出的说辞只能说是凭空遐想罢了。所以,在本文转载 2016-10-24 17:10:12 · 255 阅读 · 0 评论 -
Android应用程序窗口(Activity)的运行上下文环境(Context)的创建过程分析
在前文中,我们简要介绍了Android应用程序窗口的框架。Android应用程序窗口在运行的过程中,需要访问一些特定的资源或者类。这些特定的资源或者类构成了Android应用程序的运行上下文环境,Android应用程序窗口可以通过一个Context接口来访问它,这个Context接口也是我们在开发应用程序时经常碰到的。在本文中,我们就将详细分析Android应用程序窗口的运行上下文环境的创建过程。转载 2016-09-28 10:55:24 · 405 阅读 · 0 评论 -
3min初识ListView(1)-BaseAdapter方法实现
ListView是Android软件开发中非常重要组件之一,基本上是个软件基本都会使用ListView 。今天我们初始ListView并实现其适配器BaseAdapter的相关方法。先看ListView官方API:A view that shows items in a vertically scrolling list. The items come from the ListA原创 2016-10-13 22:03:29 · 300 阅读 · 0 评论 -
Android Volley完全解析(四),带你从源码的角度理解Volley
经过前三篇文章的学习,Volley的用法我们已经掌握的差不多了,但是对于Volley的工作原理,恐怕有很多朋友还不是很清楚。因此,本篇文章中我们就来一起阅读一下Volley的源码,将它的工作流程整体地梳理一遍。同时,这也是Volley系列的最后一篇文章了。其实,Volley的官方文档中本身就附有了一张Volley的工作流程图,如下图所示。多数朋友突然看到一张这样的图,应转载 2016-09-28 13:49:01 · 374 阅读 · 0 评论 -
算法优解(3)-栈栈排序
来自左神书中的一道题,不过左神的Java代码有一点小问题,排序排反了,大于号改成小于号就ok,自己亲自Coding实现了一遍,麻烦小伙伴们帮忙转转,让左神下一版时能纠正这个错误,另,转载请注明出处哈。题目:一个栈中元素的类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈。除此之外,可以申请新的变量,但不能申请额外的数据结构。 分析:题目不难,直接上代码,里面有用例原创 2016-09-28 14:06:37 · 349 阅读 · 0 评论 -
3min初识ListView(5)-inflate返回View的3种方式
在之前的《3min初识ListView(4)-inflate打气筒实现复杂布局》我们使用inflate获得了View,成功将布局资源转化成了一个View对象。今天我们学习一下通过inflate返回View的3种方式:之前我们使用的方法是: view = View.inflate(getApplicationContext(),R.layout.item,null);简单明了。原创 2016-10-22 16:32:17 · 490 阅读 · 0 评论 -
3min初识ListView(6)-数组适配器介绍
Adapter适配器有很多,但不管什么Adapter,作用就是把数据展示到ListView。之前我们学习了BaseAdapter,今天我们3min写一个ArrayAdapter数组适配器的Demo。先写一下布局文件。在主布局里定义一个ListView,写一下id、宽、高:<RelativeLayout xmlns:android="http://schemas.android.c原创 2016-10-24 21:25:37 · 369 阅读 · 0 评论 -
Android Context完全解析,你所不知道的Context的各种细节
Context相信所有的Android开发人员基本上每天都在接触,因为它太常见了。但是这并不代表Context没有什么东西好讲的,实际上Context有太多小的细节并不被大家所关注,那么今天我们就来学习一下那些你所不知道的细节。Context类型我们知道,Android应用都是使用Java语言来编写的,那么大家可以思考一下,一个Android程序和一个Java程序,他们最大的区别在转载 2016-11-04 17:20:23 · 253 阅读 · 0 评论 -
android:layout_gravity和android:gravity的区别
1.首先来看看Android:layout_gravity和android:gravity的使用区别。android:gravity:这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性,android:gravity="left"和android:text="提交",这时Button上的文字“提交”将会位于Bu转载 2016-10-14 10:50:03 · 277 阅读 · 0 评论 -
Android中visibility属性VISIBLE、INVISIBLE、GONE的区别
在Android开发中,大部分控件都有visibility这个属性,其属性有3个分别为“visible ”、“invisible”、“gone”。主要用来设置控制控件的显示和隐藏。有些人可能会疑惑Invisible和gone是有什么区别的???那么,我们带着这个疑问看下面:其在XML文件和Java代码中设置如下: 可见(visible)XML文件:转载 2016-10-14 10:51:12 · 296 阅读 · 0 评论 -
Android-TextSize(px、sp)的坑
使用如下代码时,发现字号不会变大,反而会变小:size = (int) mText.getTextSize() + 1;mText.setTextSize(size);后来发现getTextSize返回值是以像素(px)为单位的,而setTextSize()是以sp为单位的,两者单位不一致才造成这样的结果。这里可以用setTextSize()的另外一种形式,可以指定单位:转载 2016-10-14 10:52:27 · 1274 阅读 · 0 评论 -
回顾JavaSE(7)-String(6)String API 获取功能
今天我们结合源代码和实例一起来学习一下String类的获取功能,主要包括这几个函数:length、charAt、indexOf、substring。int length() /** * Returns the length of this string. * The length is equal to the number of Unicode原创 2016-09-28 20:17:21 · 271 阅读 · 0 评论