2019年11月

官方文档:

https://docs.microsoft.com/en-us/visualstudio/install/create-an-offline-installation-of-visual-studio?view=vs-2019

关于C# .Net Desktop 的流程大概就是

下载vs community版本

https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=community&rel=16&utm_medium=microsoft&utm_source=docs.microsoft.com&utm_campaign=offline+install&utm_content=download+vs2019

下载文件到相应文件夹

桌面.Net Desktop

vs_community.exe --layout c:\vslayout --add Microsoft.VisualStudio.Workload.ManagedDesktop --includeOptional --lang en-US

开始安装

c:\vslayout\vs_community.exe --add Microsoft.VisualStudio.Workload.ManagedDesktop --add Component.GitHub.VisualStudio --includeOptional

完成

这样我们就完成了程序的离线安装,通常在在线安装无法连接时比较方便
(博文中去掉了原来的.Net web)

前言

阅读本文你需要:
基础的java知识 √
基础Android知识

教程思路

我们将创建一个 有 输入框(EditText) 和 按钮(Button) 的界面,
用户在输入框输入文字, 点击按钮后,程序将保存文本,
用户退出程序, 重新打开时依旧有上次输入的内容

让我们开始吧

主程序

创建一个SharedPreferences.

SharedPreferences sharedPreferences = getSharedPreferences("settings", Context.MODE_PRIVATE);

你可以看到我们在后面跟了一个get的方法,
第一个值是要获取的Preferences的名字, 我们随便起一个名字就好, 这里我们写 settings
然后第二个值是模式mode, 这里我们先默认PRIVITE

你的 MainActivity.java 现在应该和下面差不多

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_settings);
        SharedPreferences sharedPreferences = getSharedPreferences("settings", Context.MODE_PRIVATE);
    }
}

做一个自己的布局文件

我们在我们的主 Activity 的布局里面添加一个 EditText 编辑框, id 为 editText1,
然后在下面增加一个 Button 按钮, id 为 button1,
( 教程使用垂直的LinearLayout )

你的布局文件(/res/layout/activity_main.xml)大概像这样:

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:padding="24dp"
            android:orientation="vertical">

            <EditText
                android:id="@+id/editText1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="textPersonName"
                android:text="" />
            <Button
                android:id="@+id/button1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="保存" />
</LinearLayout>

(善用Android Studio, 可以直接拖动添加部件)

完善主程序代码

接下来,我们需要给按钮增加一个监听事件, 当按钮被点击就能做些事情了,

    Button button_save = (Button)findViewById(R.id.button1);
    button_save.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        }
    });

当然我们的IDE会提示,所以直接回车很省力

在onClick里面,我们要输入的就是 让程序获取EditText 文本框里的内容并保存到SharedPreference里的 代码了
写好以后大概就是这样的

    Button button_save = (Button)findViewById(R.id.button1);
    button_save.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
               EditText editText=(EditText)findViewById(R.id.editText1);
               String someText=String.valueOf(editText.getText());
               //someText的值就是editText的内容了
               sharedPreferences.edit().putString("text", someText).apply();
               //编辑,放入字符串,应用 ( 学好英语,理解方法的意思哈哈哈 )
        }
    });

接下来我们需要让程序加载时就会显示我们原先保存的字符
所以我们在稍微上面点的位置加入一行,

EditText editText_again=(EditText)findViewById(R.id.editText1);
editText_again.setText(sharedPreferences.getString("text",""));

(因为开始的时候可能没有editText这个变量..所以我们需要再把它找一遍)
然后就能在程序开始的时候取得我们保存的字符,如果没有获取到,就默认为空
现在你的主程序 MainActivity.java 看起来应该像这样:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_settings);
        SharedPreferences sharedPreferences = getSharedPreferences("settings", Context.MODE_PRIVATE);

        EditText editText_again=(EditText)findViewById(R.id.editText1);
        editText_again.setText(sharedPreferences.getString("text",""));

        Button button_save = (Button)findViewById(R.id.button1);
        button_save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                   EditText editText=(EditText)findViewById(R.id.editText1);
                   String someText=String.valueOf(editText.getText());
                   //someText的值就是editText的内容了
                   sharedPreferences.edit().putString("text", someText).apply();
                   //编辑,放入字符串,应用 ( 学好英语,理解方法的意思哈哈哈 )
            }
        });
    }
}

完成

运行程序, 输入文字, 点击保存, 关闭程序
再次打开程序, 会看到我们的文字依旧在那里!
这就是 SharedPreferences 的简单使用了!教程结束!

前言

时间复杂度能用来衡量一个算法的快慢
我们常用 大O表示法 来表示

阅读本篇文章,你需要有

  1. 程序语言基本知识
  2. 常见程序语言的循环,判断知识

例子

我们将通过不同的例子来向你展示不同的复杂度代表怎样的程序

1.时间复杂度为O(1)

其实就是执行一次的程序
比如:

java: int i=1;
php: $a=1;
js: var aa=1;

这些都是复杂度为O(1)的程序

2.时间复杂度为O(n)

这可能是你很好奇的一个,也是很常见的一个

for(int i = 0; i < n; i++){
   int a = 0; //执行N次
}
a = 1;//执行1次

这里按理来说应该是O(n+1),但实际上我们需要将1忽略
我们需要记住几条简化规则

1. 去掉加法常数

例: n+1+1=n
n+10+1=n

2. 只保留最高项

例: n²+n+1=n²

3. 最高项系数为1

例: 2n²+n+2=n²
4n²+n=n²

2.时间复杂度为O(n²)

看完上面的你应该已经想到复杂度为n²的程序了

   for(int i = 0; i < n; i++) {         
       for(int j = 0; j < n; j++) {    
           int a=1;
       }
   }

拓展

所有时间复杂度的排序如下:
O(1)<O(logn)<O(n)<O(n²)<O(n³)<O(2^n)

有惊无险

接上回说到,我没想太多,用1000买了个基金,红包8元。然而我忘记如果跌0.1%那么我就少10块。。也不知道卖出还会有手续费。。

于是等待结果,一天天过去了,这个基金,居然,一动不动。。(这个基金是:国寿安保)
我的内心:哈哈哈,8块红包有着落了

初入基金

于是这么多次与基金接触,它终于打翻我内心的小船,我开始在基金的海里溺水,啊不,遨游
看着大家都在买财通,还有一个我盯上的广发
于是买了300财通,1000广发。

跌入谷底的财通

坏消息是,财通涨了两天大概有2%收益
然后就开始跌了,收益一直在-13左右波动
我决定先放着不管它。。虽然每天看着它都是绿色的,心情有点不太好

只涨一点的广发

好消息是,广发每天都在涨一点
然而涨的不够补财通。。几块左右的收益,补不上那负十几块....

开始补习

每天看着绿的财通,我开始学习基金,虽然并没有学到多少

5G来了

哦! 听说5G要来了,好机会,我又买了1000财通, 然后5G来了啊! 涨了很多,把之前跌的都补回来了
于是我把它卖掉...因为5G来的快走得快,虽然因为这样收了1.5%的手续费,但是还剩下来1.83元~

所以我终于在一个月的摸爬滚打中拿到了1.83元....
(内心:!!啊放余额宝都比这个高啊,余额宝一千放一个月还有3块呢!又是一个大坑..)

下一篇: (暂未更新 2019.11.20)

前言

基金,这个词,熟悉又陌生,博主只在初中高中政治书上见过。
当时课文讲 基金,比存款风险高,比股票风险低(哦。。这可能是说债券。)

那时,我身边的人大部分是谈“股”色变,他们会劝我说:千万不要买股票,会倾家荡产之类的。当时虽然我还小,但也能在不经意之间从各种渠道听到人们在谈论:牛市到了,熊市到了,对股票的理解也就停留在 牛市是好的是红色会涨会挣到钱, 熊市是绿的会跌会少钱。
(哦不,我好像跑题了, 我们的主题是基金)

当我长大了

长大了一点,我也有了一个支付宝,注册一个多月后,有次进到“财富”这个tab时,应用提示我有红包,打开后是个5元基金红包,
10元起使用,于是我开动我的大脑开始计算,如果一分钱不挣,这个红包能拿到多少,哦,是的,我是做了最坏打算,毕竟我对基金一点也不了解啊,大概就是一切都是为了红包,(扣掉手续费0.01元,假设明天跌也不可能跌一半吧,想了不少。。)最后得到结论:嗯,这个红包我能拿到4元吧。于是(18年的2月)我买下了【汇添富蓝筹稳健组合】。接着没几天立刻卖出了。

最后回来9.61元(手续费0.05)。(哦我的天,现在回看一下这个钱,我的收益率是-3.3%啊....)于是我成功拿到了红包!当时还挺开心。。。于是在一年后的相同时段我又连带着红包钱,买了【天弘上证指数50A】【富国沪深300指数增强】等许多基金,当然全都是为了红包。(大多数实际上收益率都是负吧。。。咳咳)

一直到前些段时间(2019年)的暑假,支付宝来了一个大红包8.18元,但是这次不同的是,是1000起购。不过我也没想太多,就直接购买了,然后坑就来了啊,

下一章:兰兰想基金踩坑记【1】-- 难得的1.83元

P.s
这就是我和基金的第一次接触,其实如果不是我现在在看着以前的交易记录,这些事情早就忘了吧。