山东青岛安卓培训就业中心 专业Android软件工程师培训,手机软件开发人才就业实训中心0532-85025005

读懂 Android 中的代码混淆

 作者:技术小黑屋
链接:https://zhuanlan.zhihu.com/p/24886651
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

在Android开发工作中,我们都或多或少接触过代码混淆。比如我们想要集成某个SDK,往往需要做一些排除混淆的操作。

本文为本人的一些实践总结,介绍一些混淆的知识和注意事项。希望可以帮助大家更好的学习和使用代码混淆。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 15

Java核心类库——时间Date和Calendar

 

时间日期
1)java中的时间类有:DateCalendar

2)java中时间类的本质 long(毫秒数)
Date = long +历法算法(方法gerYear())
  Calendar = long +历法算法(方法ger())

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 24

Java中类的加载顺序

 

 1、虚拟机在首次加载Java类时,会对静态初始化块、静态成员变量、静态方法进行一次初始化
 2、只有在调用new方法时才会创建类的实例
 3、类实例创建过程:按照父子继承关系进行初始化,首先执行父类的初始化块部分,然后是父类的构造方法;再执行本类继承的子类的初始化块,最后是子类的构造方法
 4、类实例销毁时候,首先销毁子类部分,再销毁父类部分

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 29

Java数据类型及对应取值范围

 在Java中,数据类型分为两大种:基本数据类型(值类型)和包装类型(引用数据类型)。基本数据类型不是对象,不能调用toString()、hashCode()、getClass()、equals()等方法。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 37

如何招聘到优秀的程序员?

 

我是一名软件工程师。如果你想招揽到我,下面是一些提示。这些提示都是一些很通用的技巧,可助你招聘到任何软件工程师——特别是那些技术过硬、经验丰富的人才。虽然人与人是不同的,但是这些技巧适用于任何人。还有如何成为“最明智老板”的小贴士,之所以要知道这一点是因为招聘和留住人才是紧密相关的。

 

1.竞争意识

2.关心

3.有针对性

4.用工程师去联系工程师

5.打动工程师

6.放下你的骄傲

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 26

Java中定时器的使用

 

在JAVA中实现定时器功能要用的二个类是Timer,TimerTask
Timer类是用来执行任务的类,它接受一个TimerTask做参数
Timer有两种执行任务的模式,最常用的是schedule,它可以以两种方式执行任务:1:在某个时间(Data),2:在某个固定的时间之后(int delay).这两种方式都可以指定任务执行的频率,本文有二个例子,一个是简单的一个是用了内部类
1.简单实例

  先写一个类

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 38

程序员工资高?宝宝心里有话说

 

最近看到许多关于程序员工资的大讨论,其实对于薪资是个相对保守的秘密,而程序员工资的高低与技能等级和经验挂钩的,积累的知识财富越多,经验越多,当然拥有一个八核级的CPU大脑也是非常有必要的,但是仅有这些却远远不够的。请听我说完下面这些话,将心比心。

一、面对复杂多变的需求,提供最佳的解决方案

前 段时间看到了一则笑话,大概是这样的:小明告诉他爸爸,长大后想当程序员,他的爸爸感觉儿子怪聪明的,也不失是一个安身立命的好法子,爸爸为了考验儿子是 否有这个决心,便出了个方式去考验他,爸爸道:儿子,出去打一壶酱油回来。就在小明刚要转身出发的时候,爸爸又说:家里还有一壶酱油呢,现在不需要酱油 了,就给咱们买一瓶香油吧。小明答应道:可以,就去买香油了。在买香油的路上,爸爸给小明打电话说:儿子,赶快回来再多带点儿钱,家里没有面粉了,还得带 一袋面粉。这时小明不淡定了,不耐烦的说:你怎么变来变去的啊,也不一下说完,害我走了好远的路又回来。哈哈,爸爸这时说:那你还想当程序员啊?

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 16

Java实现随机无重复数字功能

 本文给大家介绍如何在JAVA中实现随机无重复数字的功能。如果您是初学者的话,有必要看一看这篇文章,因为这个功能一般会在面试中遇到。包括我本人在招聘人员的时候也喜欢拿这个问题去问别人,主要看一看考虑问题的模式和基础知识如何。
  

  希望这篇文章能给初次接触的朋友一些帮助,因为我曾接触过一些朋友要么写不出来,要么使用很平铺的思维方式去实现它。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 18

Java Thread(线程)案例详解sleep和wait的区别

 

F区别

sleep()方法
  sleep()使当前线程进入停滞状态(阻塞当前线程),让出CUP的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会;
   sleep()是Thread类的Static(静态)的方法;因此他不能改变对象的机锁,所以当在一个Synchronized块中调用Sleep()方法是,线程虽然休眠了,但是对象的机锁并木有被释放,其他线程无法访问这个对象(即使睡着也持有对象锁)。
  在sleep()休眠时间期满后,该线程不一定会立即执行,这是因为其它线程可能正在运行而且没有被调度为放弃执行,除非此线程具有更高的优先级。 
   
wait()方法
  wait()方法是Object类里的方法;当一个线程执行到wait()方法时,它就进入到一个和该对象相关的等待池中,同时失去(释放)了对象的机锁(暂时失去机锁,wait(long timeout)超时时间到后还需要返还对象锁);其他线程可以访问;
  wait()使用notify或者notifyAlll或者指定睡眠时间来唤醒当前等待池中的线程。
  wiat()必须放在synchronized block中,否则会在program runtime时扔出”java.lang.IllegalMonitorStateException“异常。


  所以sleep()和wait()方法的最大区别是:
    sleep()睡眠时,保持对象锁,仍然占有该锁;
    而wait()睡眠时,释放对象锁。
  但是wait()和sleep()都可以通过interrupt()方法打断线程的暂停状态,从而使线程立刻抛出InterruptedException(但不建议使用该方法)。
复制代码

F代码

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 23