自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 网易云音乐Android开源项目

NetEase Music 网易云音乐这是一个防网易云音乐Android APP,主要使用MVP(Model View Presenter)架构进行开发,网络请求主要采用 RxAndroid + Retrofit欢迎star https://github.com/shellhub/NetEaseMusicAPP截图NeteaseMusic网易云音乐APP...

2018-12-07 16:54:45 917

原创 Telegram专用代理MTProxy脚本

写一个专门用于搭建Telegram代理MTProxy的脚本https://github.com/shellhub/shellhub/blob/master/proxy/mt_proxy.sh支持版本CentosDebian/Ubuntu如何使用复制到服务器中自动编译安装wget -N --no-check-certificate https://raw.g...

2018-07-19 00:31:07 19278 18

原创 Telegram MTproxy代理搭建完全指南 - Telegram IOS无法链接

视频演示传送门 最近更新了最新版本的ios Telegram后,发现无法链接到服务器,一直处于Connectting状态,即使是开启了ss的全局模式也是没有任何作用,强制让Telegram去监听socks5的端口号,试了1080,1086,1087等一些列端口号都无果,最终的解决方案是通过Telegram MTProxy得以解决编译源码通过SSH链接到自己的服务器ssh ro...

2018-07-14 17:37:30 31084 12

原创 最大公约数和最小公倍数问题

原文地址https://github.com/shellhub/blog/issues/47求解最大公约数和最小公倍数什么是最公约数最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个什么是最大公倍数两个或多个整数公有的倍数叫做它们的公倍数暴力破解法#include<stdio.h>void swap(int *pa, int...

2019-08-16 18:54:16 287

原创 C语言switch史上最详细的讲解

原文链接https://github.com/shellhub/blog/issues/41C语言switch史上最详细的讲解switch语句允许测试变量与值列表的相等性,每个值称之为案例或者case,程序会检查switch后面的值并且与case后面的值比对,如果相等则执行后面的代码或代码块语法switch在C语言中的语法如下switch(expression) { cas...

2019-01-11 08:53:00 44298 2

原创 《C语言结构体史上最详细的讲解》

原文链接https://github.com/shellhub/blog/issues/40struct结构体数据类型前言我们知道,在C语言中有一些基本的数据类型,如charintfloatlongdoublestring(c99)等等数据类型,他们可以表示一些事物的基本属性,但是当我们想表达一个事物的全部或部分属性时,这时候再用单一的基本数据类型明显就无法满足需求了...

2018-12-18 11:07:03 1703

原创 Android网易云历史搜索和热门标签

Android网易云历史搜索和热门标签原文地址最近开发了一个网易云音乐播放器,有这么一个需求,需要展示搜索建议,历史搜索记录项目地址: https://github.com/shellhub/NetEaseMusic从效果图可以看到,标签如果太长无法容纳会自动换行,虽然我们可以自己实现自定义View,但是人生苦短没必要重复造轮子,这里推荐谷歌推出的库flexbox-layout添加...

2018-12-12 11:11:07 546 1

原创 Android Studio / IntelliJ IDEA 中使用lombok

原文连接https://github.com/shellhub/blog/issues/30前言lombok可以通过一个注解自动实现Getter Setter等方法.平时我们可以通过Eclipse或者IntelliJ IDEA快捷键生成Getter Setter方法,当我们需要加入一个新的属性或者修改某属性的变量名或者数据类型时,都需要手动修改Getter Setter方法,这样极为麻烦...

2018-10-20 10:22:04 151

原创 Android设置界面开发

原文连接https://github.com/shellhub/blog/issues/29我们在项目中经常需要用到设置(Setting),在安卓中主要使用android.preference.PreferenceFragment 和 android.support.v7.preference.PreferenceFragmentCompat,在Android API 28中Prefere...

2018-10-17 14:02:06 3002 1

原创 最强Linux shell工具Oh My Zsh 指南

原文更新地址 https://github.com/shellhub/blog/issues/25Oh-My-Zsh!提高你CLI(Command-line interface )的神奇工具 - Ubuntu教程我是命令行界面的忠实粉丝……我不喜欢使用我的电脑鼠标!这促使我寻找出色的工具来增强我在CLI上的用户体验,一次偶然的机会机会在YouTube上观看了国外YouTub...

2018-09-04 12:43:22 2078

原创 设计模式: Java中的工厂设计模式

原文链接 https://github.com/shellhub/blog/issues/22前言工厂设计模式(Factory Design Pattern)属于创建模式之一,工厂设计模式在JDK,Spring,Stuts被广泛使用 当一个类或者接口有多个子类,并且基于输入返回特定的子类,此时会使用工厂设计模式。这种模式负责从客户端到工厂类的实例化。让我们首先学习如...

2018-08-22 23:22:26 1653

原创 Docker中使用MySQL

原文地址 https://github.com/shellhub/blog/issues/21安装DockerLinux或者Mac用户建议使用一件脚本安装https://github.com/docker/docker-installWindows用户(好久没用这个系统了)https://docs.docker.com/docker-for-windows/ins...

2018-08-22 14:11:19 2952

原创 Room SQLite持久层框架

原文链接前言Android中提供了SQLite数据库进行数据的持久化 ,并提供了对应API访问数据库,而Room框架提供了SQLite数据访问抽象层,为高效的数据库访问层带来便捷APP可以缓存用户数据,当APP离线时便从SQLite读取数据,当重新连线时即可完成和服务器数据的同步谷歌官方强烈推荐使用Room框架操作SQLite数据库Hello World首先在b...

2018-08-03 19:00:04 585

原创 深入浅出Java Object源码

Java中的ObjectJava中的Object类位于java.lang包中,每一个Java类直接或者间接继承自Object,如果一个类没有继承任何类,那么该类默认直接继承Object,如果一个类继承了某一个类,那么Object间接继承了Object,因此所有Java对象都可以访问Object中定义的方法,因此Object是所有类的顶级父类。Object源码解析toString方法...

2018-07-31 23:11:35 263

原创 设计模式之单例模式

原文链接 Java单例模式是四中创建模式之一,本文我们讲从例子讲解单例模式的方方面面Java单例模式(Singleton)Java限制了类的实例,保证了JVM中只能存在一个某个类的一个实例单实例类必须提供一个访问该实例的全局方法(其实就是public static)单例模式使用在日志(logging),驱动(driver),缓存(caching),线程池(thread pool)...

2018-07-29 15:05:32 61

原创 ArrayList源码解析

原文链接 ArrayList底层使用数组实现,所以随机访问特定位置的元素的速度特别快,时间复杂度为0(1)transient Object[] elementData; // non-private to simplify nested class accessArrayList默认分配大小为10的容量/** * Default initial capacity. */pr...

2018-07-28 20:11:43 43

原创 你真的知道JAVA中抽象类和接口的区别么?

原文链接详解在抽象类中可以写非抽象的方法,从而避免在子类中重复书写他们,这样可以提高代码的复用性,这是抽象类的优势;接口中只能有抽象的方法。public abstract class Person { void eat(){ System.out.println("it is valid"); }}接口中的方法不能有具体实现,以下代码报错...

2018-07-23 21:07:26 153

原创 开始你的shell脚本编程

原文链接 对于我自己来说,学习新框架或技术的最佳方式是同时获得实践经验,在本文中,你将自己通过编写代码来学习shell脚本的基础知识!本文包含语法,shell脚本的基础知识到中级shell编程,通过这篇文章你可以学习shell的相关知识,并且通过shell来实现Unix/Linux之间的接口介绍您可能已经多次遇到过“脚本”这个词,但脚本的的含义是什么意思呢?简单的来说,脚...

2018-07-14 16:48:09 1607

提示
确定要删除当前文章?
取消 删除