[推荐]Markdown编辑器(PC+手机端)

开篇

相信大家都有去过Github吧,这是一个大牛集结,学习的好去处,可以说大部分开源项目都托管在这上面,我以AndroidSwipeLayou为例,我们看到的是这样的页面:
gitbub-readme
上面是代码目录结构,下面是什么?对,README.md!下面的内容都是README.md来描述的信息,我当时不知道.md是什么文件,也不知道它可以写出这么酷炫的文字和页面效果。md是markdown的简写,markdown提供了非常友好的文字处理能力,在了解到Markdown之后,才知道原来还可以这么玩,使用过了才知道它的强大之处。Github在添加README.md时就相当于是一个在线编辑器,而且还有转换预览,其实你可以在这里编辑,然后copy到任何支持的地方使用,但是离线的时候怎么办?于是开始寻找一款高效的编辑器,没错Sublime text,它已经成为一款程序员必备软件,无奈我没始终没安装上markdown的插件(请自行google安装教程),只好放弃了,但是最后我找到了各种Markdown的编辑器,下面就为大家一一揭晓。

在线编辑器 - 马克飞象

官方地址:点我跳转
这是oschina提供的一个在线的编辑器,可以实时预览、Html效果预览

Java之静态绑定和动态绑定

概念

  • 程序绑定:绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来,Java中绑定分为绑定分为 静态绑定动态绑定
  • 动态绑定:在面向过程中又称为后期绑定,在程序运行期进行了绑定,根据实际情况有选择的进行绑定
  • 静态绑定:在面向过程中又称为前期绑定,在程序编译期进行了绑定,即在还没运行时,就已经加载到内存

    对比

  • 动态绑定
    • 又称为后期绑定
    • 发生在运行时期
    • 虚方法(可以被子类重写的方法)会根据运行时的对象进行动态绑定
    • 动态绑定使用对象信息来完成
    • 典型应用是方法的重写(Override)
  • 静态绑定
    • 又称为前期绑定
    • 发生在编译时期
    • 使用private或static或final修饰的变量或者方法(包括构造方法)
    • 静态绑定使用类信息来完成
    • 典型应用是方法重载(Overload)

Java重载匹配优先级

前情提要

Java面向对象的三个基本特征:继承、封装和多态;多态主要体现在重载和重写;

示例代码

无意间看到这样一个问题,为了方便直观,就用代码来描述问题,有这样一个类:

public class OverloadPriority {

    public static void print(Object arg) {
        System.out.println("parameter type = Object");
    }

    public static void print(int arg) {
        System.out.println("parameter type = int");
    }

    public static void print(long arg) {
        System.out.println("parameter type = long");
    }

    public static void print(double arg) {
        System.out.println("parameter type = double");
    }

    public static void print(float arg) {
        System.out.println("parameter type = float");
    }

    public static void print(char arg) {
        System.out.println("parameter type = char");
    }

    public static void print(Character arg) {
        System.out.println("parameter type = Character");
    }

    public static void print(char... arg) {
        System.out.println("parameter type = char...");
    }

    public static void print(Serializable arg) {
        System.out.println("parameter type = Serializable");
    }

    public static void print(Comparable<?> arg) {
        System.out.println("parameter type = Comparable");
    }

    public static void main(String[] args) {
        // int
        print('g');
    }

}

Android之Log混淆

作为Android开发工程师,项目开发的过程中,日志的打印是必不可少的,通过这些日志我们可以很好分析程序运行的状况与正确性,可以使用的日志输出有哪种形式呢?发布release版本应该怎么屏蔽掉这些日志呢?

日志形式

  • Java形式
    System.out.println(" log for test ");
    
    这个一般不提倡使用
  • Android Log
    Log.d(TAG, " log for test ");
    
    这个是Android标准的日志输出类:android.util.Log

TAG定义

关于TAG的命名简单说一下,基本上有以下几种形式:

  • 人名
    Log.d("gogh" " log for test ");
    
    与代码无关,无法定位日志的位置
  • 类名
    private static final String TAG = LogUtils.class.getSimpleName();
    Log.d(TAG, " log for test ");
    
    经过混淆的类,类名会改变为a、b这种形式,相应的TAG值也会改变,同样无法定位相关代码域。

解决Android Studio中Terminal无法输入的问题

问题描述:

Windows系统下Android Studio中的Terminal无法获取焦点,不能输入文字。

问题原因:

这个是因为系统升级造成的不兼容问题,在Windows环境开发的朋友们估计早早的就升级Win10了吧,UI非
常的炫酷。然而AS中的Terminal使用的还是Windows中的cmd控制台,也就是位于
C:\Windows\System32\目录下的cmd.exe。Win10下的cmd相对于早期版本的cmd做了一些改进,导
致了这里描述的问题。

| | 总字数统计:87.8k