乱码三千 – 分享实用IT技术

乱码三千 – 码出一个新世界


  • 首页

  • 归档

  • 搜索

Source Insight 4.0 安装与破解(附下载地址)

发表于 2019-12-04

Source Insight4.0简介

Source Insight 4.0是一款功能强大的程序编辑器和代码浏览器,只要你拥有相应的程序语言包就能够进行程序分析, 比如说目前最好的开源语言java

作为一个android开发人员, 如果你想在windows平台上阅读程序源码, 那么Source Insight是你的布尔首选

Source Insight4.0 下载地址

如果您已经安装了sourceinsight4.0,只是需要破解,则直接下载以下资源:

链接: https://pan.baidu.com/s/1dFWD4YX 密码: icjm

解压密码: biu 因可能被检测版权问题,故必须加密打包分享。

如果需要全部重新安装,请下载 完全安装包+破解exe+lisence 压缩包:

链接: https://pan.baidu.com/s/1eSZtsbw 密码: 3kjj

解压密码: biu 因可能被检测版权问题,故必须加密打包分享。

备用破解版下载:

https://545c.com/f/21042697-503735264-7eb2bc
(访问密码:312306)

Source Insight4.0破解方法

第一步 安装Source Insight4.0

第二步 替换Source Insight.exe文件

第三步 加载lic注册文件

第四步 点击“Next”破解成功!

附录二:

如果安装或者安装后提示有问题,请进行完全卸载后,再重装一遍即可。

完全卸载方式:

1、清除注册表信息:

  • “win ”+ R 或者 “开始” -> “运行”,输入“regedit”,回车;
  • 在弹出的注册表管理器中,选择“编辑”-> “查找”->“source insight”,或按照下述路径展开:HKEY_CURRENT_USER -> software -> Source Dynamics -> Source Insight;
  • 将该项下面的source insight 需要清除的对应版本项目选中,右键“删除“。

2、删除全局配置信息:

  • 在 ./user/document/source insight 3.0/4.0 下的所有文件及该文件夹
  • 注意此处的路径可能不同 也可能是:“库”->“用户”(也可能是你的名字) -> 文档 -> source insight3.0/4.0
  • 或者 你上次安装的时候所指定的其他位置

本帖附件

点击下载

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Java面试题之面向对象的设计原则 一次性记忆

发表于 2019-11-28

六大原则

  • 单一职责原则——SRP
  • 开闭原则——OCP
  • 里式替换原则——LSP
  • 依赖倒置原则——DIP
  • 接口隔离原则——ISP
  • 迪米特原则——LOD

本帖附件

点击下载

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Android面试题之Handler内存泄漏处理 一次性记忆

发表于 2019-11-28

为什么会内存泄漏

内部类持有外部类对象引用,导致外部类无法被回收

如何解决内存泄露

  • 使用静态内部类
  • Activity销毁时handler.removeCallback()
  • 使用弱引用

本帖附件

点击下载

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Android面试题之Service 一次性记忆

发表于 2019-11-27

服务不能自己运行,需要通过调用Context.startService()或Context.bindService()方法启动服务。

这两个方法都 可以启动Service,但是它们的使用场合有所不同。

  • 使用startService()方法启用服务,调用者与服务之间没有关连,即使调用者退出了,服 务仍然运行。

  • 使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的 特点。

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

java五大排序算法之冒泡排序

发表于 2019-11-27

一.冒泡排序介绍

冒泡排序是我们得最多的排序方式之一,原因是简单易实现,且原理易懂。顾名思义,冒泡排序,它的排序过程就像水中的气泡一样,一个一个上浮到水面。
img

二.冒泡排序原理分析

img

三.冒泡排序代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
* @Author {LearnAndGet}
* @Time 2019年1月8日
* @Discription:
*/
package com.sort;

import java.util.Arrays;

public class MaopaoSort {

static int[] array = {3,2,4,1,5,0};

public static void maopaoSort(int[] a)
{
//外层循环,是需要进行比较的轮数,一共进行5次即可
for(int i=0;i<a.length-1;i++)
{
//内存循环,是每一轮中进行的两两比较
for(int j=0;j<a.length-1;j++)
{
if(a[j] > a[j+1])
{
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
System.out.println("第"+(i+1)+"轮排序后的数组为: "+Arrays.toString(a));
}
}

public static void main(String[] args) {
maopaoSort(array);
}
}

输出结果

1
2
3
4
5
第1轮排序后的数组为: [2, 3, 1, 4, 0, 5]
第2轮排序后的数组为: [2, 1, 3, 0, 4, 5]
第3轮排序后的数组为: [1, 2, 0, 3, 4, 5]
第4轮排序后的数组为: [1, 0, 2, 3, 4, 5]
第5轮排序后的数组为: [0, 1, 2, 3, 4, 5]

四.冒泡排序的优化

1 .观察上述代码和运行结果,我们可以发现,当第一轮结束后,最后一个数字一定是数组中最大的元素,那么我们在进行第二趟的两两比较时,实际上是没有必要再对第5个和第6个进行比较的。那么我们可以修改代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static void maopaoSort(int[] a) 
{
//外层循环,是需要进行比较的轮数,一共进行5次即可
for(int i=0;i<a.length-1;i++)
{
//内存循环,是每一轮中进行的两两比较
//并且每一轮结束后,下一次的两两比较中可以少比较一次
for(int j=0;j<a.length-i-1;j++)
{
if(a[j] > a[j+1])
{
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
System.out.println("第"+(i+1)+"轮排序后的数组为: "+Arrays.toString(a));
}
}

继续运行后,可以发现运行结果是一样的。

2 .当我们用数组:{1,2,0,3,5,4}来测试上述冒泡排序时,运行结果如下:

1
2
3
4
5
第1轮排序后的数组为: [1, 0, 2, 3, 4, 5]
第2轮排序后的数组为: [0, 1, 2, 3, 4, 5]
第3轮排序后的数组为: [0, 1, 2, 3, 4, 5]
第4轮排序后的数组为: [0, 1, 2, 3, 4, 5]
第5轮排序后的数组为: [0, 1, 2, 3, 4, 5]

可以看到,在第2轮排序完成后,其实我们就已经的到了排好序的数组,但是我们的程序并不知道,仍然进行了后续的无用工作。那么,我们如何来让程序知道已经完成好排序了呢?

这里可以想到,当某一轮的两两比较中,如果都没有发生数组元素的互换,那么其实排序工作已经完成了,所以我们可以考虑在程序中加入一个flag,默认为false,含义是该轮比较中是否发生了元素互换,当程序中执行到元素互换时,将该flag置为true,当该轮比较结束时,若flag为flase,则说明该轮比较未发生元素互换,那么排序完成,若flag为true,说明本轮比较仍然有元素互换,需要继续进行下轮排序。代码实现如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/**
* @Author {LearnAndGet}
* @Time 2019年1月8日
* @Discription:
*/
package com.sort;

import java.util.Arrays;

public class MaopaoSort {

static int[] array = {1,2,0,3,5,4};

public static void maopaoSort(int[] a)
{
//外层循环,是需要进行比较的轮数,一共进行5次即可
for(int i=0;i<a.length-1;i++)
{
boolean flag = false;
//内存循环,是每一轮中进行的两两比较
for(int j=0;j<a.length-i-1;j++)
{
if(a[j] > a[j+1])
{
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
flag = true;
}
}
System.out.println("第"+(i+1)+"轮排序后的数组为: "+Arrays.toString(a));
if(flag == false)
{
System.out.println("本轮中的两两比较未发生元素互换,排序已经完成啦");
return;
}
}
}

public static void main(String[] args) {
maopaoSort(array);
}
}

运行结果:

1
2
3
4
第1轮排序后的数组为: [1, 0, 2, 3, 4, 5]
第2轮排序后的数组为: [0, 1, 2, 3, 4, 5]
第3轮排序后的数组为: [0, 1, 2, 3, 4, 5]
本轮中的两两比较未发生元素互换,排序已经完成啦

五.冒泡排序的时间复杂度

冒泡排序是一种用时间换空间的排序方法,最坏情况是把顺序的排列变成逆序,或者把逆序的数列变成顺序。在这种情况下,每一次比较都需要进行交换运算。举个例子来说,一个数列 5 4 3 2 1 进行冒泡升序排列

第一轮的两两比较,需要比较4次;得到 4 3 2 1 5
第二轮的两两比较,需要比较3次;得到 3 2 1 4 5
第三轮的两两比较,需要比较2次;得到 2 1 3 4 5
第四轮的两两比较,需要比较1次;得到 1 2 3 4 5

所以总的比较次数为 4 + 3 + 2 + 1 = 10次
对于n位的数列则有比较次数为 (n-1) + (n-2) + … + 1 = n * (n - 1) / 2,这就得到了最大的比较次数。
而O(N^2)表示的是复杂度的数量级。举个例子来说,如果n = 10000,那么 n(n-1)/2 = (n^2 - n) / 2 = (100000000 - 10000) / 2,相对10^8来说,10000小的可以忽略不计了,所以总计算次数约为0.5 * N^2。用O(N^2)就表示了其数量级(忽略前面系数0.5)。

综上所述,冒泡排序的时间复杂度为:O(n²)

本帖附件

点击下载

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Android面试题之事件分发机制 一次性记忆

发表于 2019-11-26

本帖附件

点击下载

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Android面试题之Activity的四种启动模式 一次性记忆

发表于 2019-11-26

每当我们换工作面试之前,总是会不由自主的刷起面试题,大部分题我们反反复复不知道刷了多少遍,但是今天记住了,等下一次面试的时候又刷着相同的面试题,我就想问在座的各位,Activity的生命周期,你们到底刷过多少遍 [哭笑] 作为一名程序员 把时间浪费在重复性劳动上是极其不能忍受的 因此 为了让自己省去不必要的脑力开销 我给自己总结了一份面试相关的记忆技巧,在这里分享给大家 记忆不是目的 把知识变成自己的才最关键

哪四种启动模式

  • standard:默认启动模式,每开启一个activity就在任务栈中创建一个新的实例
  • singleTop:任务栈顶部有就复用,没有就重新创建,
  • singleTask:任务栈中有就将实例上方所有的实例全部销毁使其显示在最顶端,没有就重新创建一个新的实例 在搜索界面比较常用 按下主页其余网页全部被关闭
  • singleInstance:重新为新创建activity(实例)开启一个单独的任务栈,且该任务栈中有且仅有一个实例 该模式特点如下图:

如果快速记忆

其实只要将它们的英文名称单词反过来就好理解了

  • singleTop—>Top single 顶部只有一个 不允许存在两个相同的Activity
  • singleTask—>Task single 任务栈中只有它这一个Activity 那么一旦调用它 任务栈除它以外的所有Activity都会被销毁
  • singleInstance—>Instance single 实例被孤立了 进了小黑屋被单独的一个任务栈给关着
  • standard—>正常模式 这个应该好记忆

本帖附件

点击下载

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Android面试题之四大组件 一次性记忆

发表于 2019-11-26

每当我们换工作面试之前,总是会不由自主的刷起面试题,大部分题我们反反复复不知道刷了多少遍,但是今天记住了,等下一次面试的时候又刷着相同的面试题,我就想问在座的各位,Activity的生命周期,你们到底刷过多少遍 [哭笑] 作为一名程序员 把时间浪费在重复性劳动上是极其不能忍受的 因此 为了让自己省去不必要的脑力开销 我给自己总结了一份面试相关的记忆技巧,在这里分享给大家 记忆不是目的 把知识变成自己的才最关键

四大组件是什么?

Activity【活动】:用于页面展示和交互。
Service【服务】:后台运行服务,不提供界面呈现。
BroadcastReceiver【广播接收器】:用来接收广播。
Content Provider【内容提供商】:支持在多个应用中存储和读取数据,相当于数据库。

如何一次性记忆四大组件

如果让你去设计一款操作系统,你会怎么设计?

针对具有交互性的操作系统而言,需要具备以下几种基础功能 :

  • 首先 程序的界面的展示是必不可少的 这是其一 (Activity)
  • 其二 程序中也许不止一个界面 多个界面之间需要进行通信和数据传递 (BroadcastReceiver)
  • 第三 多个程序之间需要进行通信和数据传递 (Content Provider)
  • 第四 程序界面未显示的时也能随时响应用户操作 可后台运行 (Service)

*当你理解了设计者的用意后 确实能很好的理解四大组件的含义, 但是并不意味着你能很好的记忆住他们 在面试过程中你必须要有较快的反应速度 *

在这里我抛出几种右脑记忆思路:

  • 取四大组件英文首字母得到 ABCS 当对方问你四大组件都有哪些时 你能立马联想到英文字母ABC
  • 这四大组件能让你联想到什么画面?

到这里 有些人可能会说了 四大组件这么好记 还用得着这么费劲记忆?

我想说的是 如果你在工作中经常使用这些知识 那么它们对你来讲是非常熟悉的 但是针对初学者或者很长时间没有使用的开发者而言 一套合理的记忆技巧是非常有帮助的 我想若干年后 你也许忘了四大组件都有哪些了 但是你依然记得文本所说的ABC 这个时候 回忆起来 也只是一念之间的事儿

本帖附件

点击下载

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

大脑开发之右脑开发

发表于 2019-11-26

前言

工欲善其事必先利其器,大脑是我们每个人最为珍贵的宝藏,它的潜能是无穷无尽的,强大到令人可怕,

但是普通人对于大脑的了解和使用是即为匮乏的 作为一名现代人 如果你想跑得比别人快 站得比别人高 那么就必须学会如何开发我们的大脑, 让大脑更好的为我们服务

左脑和右脑分工

左右脑检测

如果你看见这个跳舞女孩是顺时针转,说明你用的是右脑;

如果是逆时针转,说明你用的左脑。

耶鲁大学耗时5年的研究成果。据说,14%的美国人可以两个方向都能看见。顺时针转的话,属於是用右脑较多的类型。逆时针转属於使用左脑较多的类型。大部分人的眼里里是逆时针方向转动,但也有人看来是顺时针方向转动的。

为什么要开发右脑

  • 左脑刺激机会相对比右脑多 大部分人左脑发达

人类左脑主管语言、逻辑、书写及右侧肢体运动,而右脑主管色彩、空间感、节奏和左侧肢体运动。在频繁使用语言的过程中,特别是国内的应试教育,侧重偏向于逻辑、记忆为主,人的左脑得到更多刺激,使左脑相对发达于右脑

  • 右脑的存储量是左脑的100万倍 反应时间要快于左脑
  • 右脑记忆更容易转化为长期记忆 极大缩短知识的记忆时间

右脑记忆的主要方式

  • 图像记忆
  • 声音记忆
  • 感觉记忆

如何训练和开发

  • 养成将知识转成图像 声音或者感觉的形式进行记忆的习惯
  • 养成听音频的习惯
  • 养成画图的习惯
  • 养成闭目空间想象回忆的习惯

本帖附件

点击下载

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

右脑记忆法之图像记忆

发表于 2019-11-26

本帖附件

点击下载

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

1…47484950

乱码三千

android程序员一枚,擅长java,kotlin,python,金融投资,欢迎交流~

493 日志
143 标签
RSS
© 2025 乱码三千
本站总访问量次
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4
0%