首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

打破你的认知,java,除以0一定会崩溃吗?

System.out.println("1/0=" + 1/0); 大叔的灵魂拷问: 上面的代码会崩溃吗?如果不会,会输出什么呢? 上面的代码会崩溃吗?如果不会,会输出什么呢? 上面的代码会崩溃吗?...运行直接崩溃。 ? ## 代码2 我们再来看一行代码: System.out.println("1.0/0=" + 1.0/0); 大叔的灵魂拷问: 会崩溃吗?如果不会,会输出什么呢? 会崩溃吗?...我们写业务代码的时候,这个知识点,很少很少能用上。 但是当我们刚好遇到除以0导致的bug的时候,这个时候就非常有用。...尤其像android的app,用户在线上遇到的bug,我们无法复现,只能通过日志去分析排查; 这个时候每个程序员都是福尔摩斯,根据一行行日志线索,配合实际代码,排查问题的可能性。...再然后,突然有一天发现,速度显示一串很奇怪的数字。 于是……接下来的故事,便如你们所想。 原本1小就解决的bug,花了5个小时。 也正如,blog开头的引言所表达的。不要小看这些零零碎的知识点。

1.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

Android 无需权限显示悬浮窗, 兼谈逆向分析 App

前言 最近 UC 浏览器中文版出了一个快速搜索的功能, 使用其他 app 的时候, 如果复制了一些内容, 屏幕顶部会弹一个窗口, 提示一些操作, 点击后跳转到 UC, 显示这个悬浮窗不需要申请android.permission.SYSTEM_ALERT_WINDOW...验证 实际测试了一下, 将 type 设置成 TYPE_TOAST 果然有奇效, 不需要android.permission.SYSTEM_ALERT_WINDOW权限就能显示一个悬浮窗....之前我一直以为调用了系统WindowManager.addView需要android.permission.SYSTEM_ALERT_WINDOW权限, 但实际上调用这个方法是不需要权限的, Android...在这个 ROM 上表现为:使用TYPE_PHONE这类需要权限的 type , 只有 app 处于前台显示悬浮窗, 且能正常接受触摸事件. 如果在应用详情里面授悬浮窗权限, 则工作完全正常....Android2.3 上无法接收点击事件TYPE_SYSTEM_ALERT: 属于悬浮窗, 但是会被禁止 尾声 现在我们都知道了如何在不申请权限的情况下显示悬浮窗, 我相信以中国 Android 开发者的脑洞

3K101

Android浏览器跨域数据窃取和Intent Scheme攻击

Intent-based攻击:这种基于intent的安卓攻击手法很普遍,轻则导致应用程序崩溃,重则可能演变提权漏洞。...攻击实验背景介绍 我研究Stock浏览器的事务流程标准时发现,如果让浏览器打开新选项卡并且使用file://协议,就可以通过网页打开本地文件。...当然,这的确不算一个漏洞,但是如果它能在读取本地文件后,然后把该文件的信息发送到远程,那就完全不同了。...浏览器访问以上示例页面,只要进行一些特定操作,其中的恶意脚本就会影响Firefox(文章首段提到的特定的Android浏览器实例)或者Android的自带浏览器,下载恶意代码到/sdcard/Download...alert("innerHTML:"+iframe.contentWindow.document.body.innerHTML); } catch(e) { alert(e);

1.4K60

大部分程序员都记不住的注解,Idea 云笔记却能轻松记住

等规定大几百个注解,要记住谈何容易,于是工作之余搞了一个Idea笔记插件,来记录这些零的知识点。...控制台一键百度搜索异常,不用拷贝一次省事,还可以控制台做笔记 跨文件显示笔记(既一次添加笔记,多个文件中自动显示) 支持13+种语言的笔记 Css云笔记 Java云笔记...,提供给每个人的不同体验,具体功能如下: 一键关闭所有笔记功能(参考图片中的紫色标记) 选择某个语言,并开关某项笔记(参考图片中红色标记) 同步上传或下载可点击图片中相关菜单即可,但需要先登录...如何记录Java错误笔记 java错误笔记是Console控制台中操作,支持CUD操作 点击黄色文字可添加 点击笔记文字可修改 在编辑完全删除备注可删除 如何解决笔记乱码 低版本的...idea中,默认使用的字体不支持,因此要支持中文的显示,需要按照一下修改一下默认的字体。

52810

安卓-碎片的使用入门

想象我们正在开发一个新闻应用,其中一个界面使用RecyclerView展示了一组新闻的标题,当点击了其中一个标题,就打开另一个界面显示新闻的详细内容。...比如说Fragment中嵌套使用Fragment,这个功能是Android 4.2系统中才开始支持的,如果你使用的是系统内置的Fragment,那么很遗憾,4.2系统之前的设备运行你的程序就会崩溃。...当点击左侧碎片中的按钮,又会调用replaceFragment() 方法将右侧碎片替换成AnotherRightFragment。...4.2.4 碎片和活动之间进行通信  虽然碎片都是嵌入活动中显示的,可是实际上它们的关系并没有那么亲密。...;  有了活动实例之后,片中调用活动里的方法就变得轻而易举了。

1.3K20

Android使用AlertDialog创建对话框

2.带列表的列表对话框 3.带多个单选列表项和N个按钮的列表对话框 4.带多个多选列表项和N个按钮的列表对话框 使用AlertDialog类生成对话框,常用的方法如下所示: setTitle :为对话框设置标题...list,一般用于显示几个命令 setSingleChoiceItems :用来设置对话框显示一系列的单选框 setMultiChoiceItems :用来设置对话框显示一系列的复选框 setNeutralButton..." android:text="显示列表的对话框"/ <Button android:id="@+id/button3" android:layout_width="wrap_content...alert.setTitle("系统提示");//设置对话框的标题 alert.setMessage("显示带取消、中立和确定按钮的对话框!")...;//设置对话框显示的内容 //添加“取消”按钮 alert.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener

1.7K30

【黄啊码】Java分布式缓存框架,你知道哪几个?

Java培训机构学习Java技术的时候,咱们都会学到缓存框架,那么咱们为什么要在Java培训中学习缓存框架呢,它最次要的一个起因就是能够放慢响应速度。...你能够通过申明配置、xml中配置、程序里配置或者调用构造方法传入不同的参数。...2、Cacheonix – 高性能Java分布式缓存零Cacheonix同样也是一个基于Java的分布式集群缓存零,它同样能够帮忙你实现分布式缓存的部署。...3、ASimpleCache – 轻量级Android缓存框架ASimpleCache是一款基于Android的轻量级缓存框架,它只有一个Java文件,ASimpleCache 根本能够缓存罕用的 Android...,以加强零的可靠性和读取性能。

34230

聊一聊Android 6.0的运行时权限

Android 6.0,代号棉花糖,自发布伊始,其主要的特征运行时权限就很受关注。因为这一特征不仅改善了用户对于应用的使用体验,还使得应用开发者实践开发中需要做出改变。...举个栗子,以某个需要拍照的应用为例,当运行时权限生效,其Camera权限不是安装后赋予,而是应用运行的时候进行请求权限(比如当用户按下”相机拍照“按钮后)看到的效果则是这样的 ?...安装后就赋予这些权限,不需要显示提醒用户,用户也不能取消这些权限。...特殊权限,顾名思义,就是一些特别敏感的权限,Android系统中,主要由两个 SYSTEM_ALERT_WINDOW,设置悬浮窗,进行一些黑科技 WRITE_SETTINGS 修改系统设置 关于上面两个特殊权限的授权...注意 即使支持了运行时权限,也要在Manifest声明,因为市场应用会根据这个信息和硬件设备进行匹配,决定你的应用是否该设备上显示

1K40

给创业码农的话--如何提升开发效率

搜索界面 我们需要在用户输入完毕后第一显示搜索结果,由于这个需要请求后台,我们又不想用户每次输入的时候都去后台请求。并且总需要显示当前最新输入内容的结果,不能因为网络的原因产生乱序的结果。...笔者3个多月以前用Fresco的时候,他加载多张图片的时候偶尔会有显示不出的情况,不确定现在是否修复。...有实时的分钟级别的上报与报警平台,崩溃上报与分析,以及卡顿、内存、SQL等各种精细化监控模块。...笔者创业依然延续了这个规则,虽然每个repo只有1-2个人同时提交代码,但是这么做可以快速应对需求的变更,并保证commit的规整性。...总结 感谢大家可以看完笔者的念,也感谢微信让笔者从一个青涩的学生成长了还算合格的程序员。

1.9K70

android dialog用法

当你希望显示一个对话框, 调用showDialog(int)并将对话框的id传给它.   当一个对话框第一次被请求,Android调用onCreateDialog(int)....该函数每次一个对话框打开都调用. 如果你不定义该函数,则对话框每次打开都是一样的. 该函数也会传入对话框的id以及你onCreateDialog()中创建的Dialog对象.   ...如果你使用这些示例代码, 你可以onCreateDialog()中返回最后的Dialog对象来获得图片中对话框的效果.   ...当你创建这个对话框后,Activity的最后返回这个对象。 在对话框被显示之前,Android还调用了可选的回调函数onPrepareDialog(int id, Dialog)....如果你想在每一次对话框被打开改变它的任何属性,你可以定义这个方法。这个方法每次打开对话框被调用,而onCreateDialog(int) 仅在对话框第一次打开被调用。

1.3K30

应用崩溃了?Android vitals 帮您精确诊断

用户可以选择 ANR 发生退出或等待。另外再次强调一下,崩溃是由于未处理的异常而引发的,所以对稳定性相关的数据和报告解读十分重要。 电量:移动设备的电量是有限的,因此应该谨慎管理应用消耗的电量。...从左侧菜单中选择 Android vitals,然后选择 Overview。 Overview 页面顶部显示核心 vitals 指标 (崩溃、过度唤醒、ANR、部分唤醒锁定阻塞)。...值得注意的是,Android vitals 仅在收集到足够的数据才会显示此信息。所以有些应用不会显示任何统计信息。...要查看实时崩溃信息,请在 ANRs & Crashes 下选择 CRASHES。应用崩溃以群集形式显示,其中显示了报告和受影响用户的数量。...但是处理应用崩溃,以下方案可能会派上用场: 使用像 Firebase Crashlytics 这样优秀的崩溃报告工具以及 Android vitals,更深入地了解应用崩溃现象。

1.9K30

Android渲染流程

theme: fancy Android应用程序调用SurfaceFliger将测量,布局,绘制好的Surface借助GPU渲染显示到屏幕上。...一个Activity对应一个PhoneWindow,Dialog等也是一个PhoneWindwo 每个Window都有一块Surface用来显示布局(特殊:当SutfaceView可见时会通过SurfaceControl...像SurfaceFlinger申请持有一块Surface),SurfaceJava中是null,nativa才有值, 通过Surface的lockCanvas可以锁定一块画布进行渲染,通过unlockCanvas...释放画布提交到Surface中,所以视图数据是Surface中的,那么Surface是如何给到GPU的?...由于前面的零零碎太多,每个地方都是一个小点分析的,所以最后一张图总结下(可以按照这个大致流程去跟我之前写的文章): 阅读上和体验上没有太照顾读者的感受,抱歉,后续会整理这些零零碎的笔记

71820

首个hybird商业项目踩坑总结

function mJSMethodName(){ alert("Android调用了JS的mJSMethodName方法"); } </...//复写shouldOverrideUrlLoading()方法,使得打开网页不调用系统浏览器, 而是本WebView中显示 @Override public boolean...Java代码操作,目前我项目中用到的地方较少,主要用来做一些比较特殊的功能,例如检测到Alert弹框中的内容符合条件进行Java代码。...适当时机直接杀掉Webview独立进程,什么内存泄露,内存占用巨大的问题都见鬼去吧。要问什么时机?比如退出app,检测到没有Webview页面。...Webview发生崩溃不会导致app闪退,就像第二点说的,因为Webview是独立进程中,如果发生崩溃,主进程还安然无事,app还在运行中,没有闪退,不闪的才是健康的。

1.2K10
领券