DAZHA大渣

  • 主页
  • 随笔
  • about
总文章数: 11
所有文章 友链 关于我

DAZHA大渣

  • 主页
  • 随笔
  • about

Java核心技术 卷I 读书心得

2019-09-30
字数:421字 | 预计阅读时长:1分钟

第四章——对象与类

  • Java中的 this 关键字与python中的 self 同理

  • 如果要返回一个可变对象的引用,则先需要将该对象克隆,否则会破坏了封装性!

  • 可以将实例域定义为 final,则在构建对象时必须初始化这样的域,而且在后面的操作中,不能够再对它进行修改

  • 如果将域定义为 static, 则每个类中只有一个这样的域(不是只定义一个,而是指该类所有对象共同拥有该域),此外,静态域还可以使用“类名.静态域”的方式来使用

  • 静态方法是一种不能向对象实施操作的方法,可以理解为函数,但是静态方法是可以访问自身类的静态域的

  • 静态工厂方法是指不通过new,而使用一个静态方法来对外提供自身实例的方法

  • 每一个类都可以有一个main方法,这是一个常用于对类进行单元测试的技巧

  • 在构造器中第一个语句使用this(...);的形式可以调用同一个类的另一个构造器,该技巧通常用于从小到大构造多个不同个数参数的构造器

  • 在类中,域首先在对象赋值中初始化,再运行代码块,最后调用构造器,因此后面的值覆盖前面的,值显示的顺序为构造器>初始化块>赋值

  • 若类的静态域初始化较为复杂,可以使用静态的初始化块:

    1
    2
    >   static{    ...//初始化静态域}
    >
  • 读书心得

展开全文 >>

Java核心技术 卷I 读书心得

2019-09-27
字数:696字 | 预计阅读时长:2分钟

Java核心技术 卷I 读书心得

第三章 Java的基本程序设计结构

  • 源代码的文件名必须与公共类的名字相同,并用.java作为扩展名

  • 与Python不同的是,Java与C/C++一样,都需要用双引号分割字符串

  • 注释与C相同“//” 表示单行注释,”/* */ “表示的多行注释

  • 常量Double.POSITIVE_INFINITY,Double.NEGATIVE_INFINITY和Double.NaN分别表示正无穷大,负无穷大以及NaN(not a number)

然而,不能使用 if (x == Double.NaN)来判断一个特定的值等于Double.NaN,因为所有的NaN的值都被认为是不相同的。因此,需要使用Double.isNaN方法:if(Double.isNan(x))

  • Java中,char类型描述了UTF-16编码中的一个代码单元,因此强烈建议不在程序中使用char类型,除非确实需要除了UTF-16代码单元,最好将字符串作为抽象数据类型处理。

  • 在Java中,使用关键字final指示常量,例如final double PI = 3.14关键字final表示这个变量只能赋值一次,习惯上常量名使用全大写

  • 若希望某个常量在一个类中的多个方法中使用,则称这个常量为类常量,使用关键字static final设置类常量:

public static final double PI = 3.14

注意类常量是定义与main方法的外部

  • 切记不能使用 == 来比较两个字符串是否相等!!!

”==“ 只能确定两个字符串是否存放于同一存储位置,而应当是用a.equals(b)来判断两个字符串是否相等

字符串的printf方法格式,参数索引值从1开始,而不是从0开始,如%1$…是对第一个参数进行格式化

  • 类似于C中goto的带标签的break语句,用于跳出多重循环
1
2
3
4
5
6
7
8
9
10
11
> read_data:
> while(...){
> ...
> for(...){
> ...
> if(...){
> break read_data;
> }
> }
> }System.out.println("here!");//break后会跳到这里
>

标签必须放在希望跳出的最外层循环之前,并且必须紧跟一个冒号,如果if条件成立,执行break语句后会跳转到带标签的 语句块末尾!

  • 创建一个数字数组时,所有元素都初始化为0,boolean数组都会初始化为false,对象数组则会初始化为一个特殊值null

  • for each 循环

格式为:

for(variable : collection) statement

e.g.

1
2
> for(int element : a) //类似于python的 for element in a:    System.out.println(element)
>

注,for each 循环不能自动处理二维数组的每一个元素,若要访问二维数组的所有元素需要两个循环嵌套,如:

1
2
3
4
5
> for(double[] row : a)//注意row 为double[] 类型
> for(double value : row){
> ...
> }
>
  • 读书心得

展开全文 >>

LaTeX Markdown的安装以及使用

2019-09-18
字数:413字 | 预计阅读时长:1分钟

LaTeX Markdown的安装以及使用

LaTeX的安装

  • LaTeX的安装比较简单,不过需要通过镜像来安装,可以参考Liam Huang的博客,里面写的非常详细了! LaTeX安装
  • 这里我是用的TeX Live套件

LaTeX的使用

LaTeX的使用可以理解为用代码(尤其像HTML这样的mark language)来排版,

但是学习曲线比较陡峭,具体方法如下:

…

由于LaTeX的使用我也没有什么特别的技巧与总结,

倒不如参照别人的操作指南进行学习其实是懒!!!

下面贴个我看的博主的帖子吧:
Liam Huang

Markdown与LaTeX

  • Markdown相比与严谨繁琐的LaTeX来说,我是更加喜欢也更加推荐使用的,前者更加适用于平常写写文档,可以轻松上传代码,图片,数学公式等,并且很多网站都支持md格式,甚至在Markdown里面你可以使用LaTeX最引以为豪的公式模式!
  • 然而LaTeX的使用情境在一般是在于写论文,以及排版编辑工作时所需要,而相比Markdown编辑器的几十MB的小巧来说,TeX Live就动辄几个G,两者各有优缺点,大家应当针对不同环境使用

Typora的安装

  • 在这里向大家推荐一款简洁漂亮,非常好用的Markdown编辑器——Typora

    Typora安装

Markdown的使用

  • 由于Markdown过于简单,其实还是因为懒,这里我还是放上几个自己学习的链接,供大家参考参考吧
  • 菜鸟教程
  • 数学公式
  • 数学公式2
  • 使用Typora添加数学公式
  • 读书心得

展开全文 >>

深入理解计算机系统读书心得

2019-09-14
字数:1.1k字 | 预计阅读时长:4分钟

第六章——存储器层次结构

  • 磁盘容量 = 字节数(扇区)* 平均扇区数(磁道)* 磁道数 (表面)* 表面数 (盘片)* 盘片数(磁盘)
  • 磁盘结构

  • 内存和磁盘技术的一个基本事实:增加密度(从而降低成本)比降低访问时间容易得多

局部性(locality)

  • 一个有良好局部性的计算机程序倾向于引用邻于其他最近引用过的数据项的数据项,或者最近引用过的数据本身。
  • 时间局限性:被引用过一次的内存位置很可能在不远的将来再被多次引用。
  • 空间局限性:若一个内存位置被引用了一次,那么程序很可能再不远的将来引用附近的一个内存位置。
  • 局部性小结:
  • 重复引用相同变量的程序有很好的时间局部性。
  • 对于具有步长为k的引用模式的程序,步长越小,空间局部性越好。具有步长为1的引用模式的程序有很好的空间局部性。在内存中以大步长跳来跳去的程序空间局部性会很差。
  • 对于取指令来说,循环有好的时间和空间局部性。循环体越小,循环迭代次数越多,局部性越好。
more >>
  • 读书心得

展开全文 >>

深入理解计算机系统读书心得

2019-08-29
字数:547字 | 预计阅读时长:2分钟

第二章——信息的表示和处理

  • 将十进制数n转换为十六进制数:
    当x为2的非负整数n次幂时

    此时,将n表示为 i+4j 的形式,我们便可以把x写成开头的十六进制数字为1(i = 0)2( i = 1)4( i = 2)8( i = 3),后面跟随 j 个十六进制的0。

    i.e. 2048 = 2^11, n = 11 = 3+ 4*2

    则十进制的2048用十六进制表示为0X800。

  • 字长决定的最重要的系统参数就是虚拟地址空间的最大大小。(字长比如32位以及64位)
  • 32位单精度浮点bias(偏置)位127的原因:
    由于单精度浮点用8位表示指数,即范围

​ 0000 0000 ~ 1111 1111 (0~255)

但 0 归类于非规格数, 255 归类于无穷大,所以仅剩下 1~254

​ 254 /2 =127 => bias = 127

于是便可以表示[1-127 , 254-127] => [-126, 127]

  • 浮点数的表示:

    • 将数分为非规格化数、无穷大以及NaN

    非规格化数:阶码为0000 0000的数

    无穷大:阶码为1111 1111,尾数为000 0000 0000 0000 0000 0000的数

    NaN(Not a number):阶码为1111 1111 尾数不为0的数

    规格化数:阶码不为0 或255的数

  • implied leading 1(尾数前隐含的个位1):

    由于所有规格化的数都可以转化为个位为1的二进制小数乘以2的n次方:

    ​ N = 1.xxx( x = 0 or 1) * 2^n

    于是便不再记录个位的“1”,因此可以换来多一位的尾数精度,但要记住逆向转换的话要加上首位的1,同理阶码转换时也需要减去bias127

  • 大端法与小端法(big endian & little endian)

e.g. 字0x01234567 在大端法的机器中存储顺序为 01 23 45 67

而在小端法的存储顺序为67 45 23 01

小端法在当今机器中更加常见。

  • 补码中正负数的转换:

5的补码表示为0101 然而-5表示为1011

转换方式为将所有位数字取反,再加上LSB(least significant bit 最低有效位)即末位加上1

-3的补码表示为1101 则3为0011 与上面方法类似

  • 读书心得

展开全文 >>

Pygame小游戏——自制版混乱大枪战.

2019-08-28
字数:3.2k字 | 预计阅读时长:17分钟

Pygame小游戏——自制版混乱大枪战

  • 难度:中等-
  • 应用技术:利用python 基于pygame第三方库制作的小游戏
  • 开发原因:有天心血来潮想玩玩小时候玩的一款4399小游戏,但是又暂时想不起名字,于是便决定自己做一个自(山)制(寨)版
  • (虽然做好后又想起了这款游戏叫做《混乱大枪战》…( _ _)ノ| 而且人物样子还是用的百战天虫的???(っ °Д °;)っ
  • 主要收获:早期学习python过程中的一个练手项目,第一次尝试大量运用类,继承等OOP特性进行开发,并且逐渐熟悉了pygame库的使用,在游戏中加入了图片,音乐,以及最基础的物理系统(速度,加速度,碰撞,后坐力等)
  • 不足:
    • 由于pygame第三方库的限制,许多想加入的功能只好放弃,比如原本考虑增加的射击、击中音效由于pygame只有应用于BGM的单音轨,只好放弃。
    • 由于pygame性能限制,导致插入背景图片会非常卡顿,所以只好再次沿用简陋的“纯黑”背景(当然也可能是我自己太弱不知道如何优化(;′⌒`)
    • 鉴于第一次大量使用类,导致写的非常混乱,各种继承乱七八糟,而且也没有很好的体现出类的可复用性,反而使代码异常繁杂,原本打算加入的多武器、技能等系统的加入或许会让类显得更加高效,但是由于种种原因(懒)而一直搁置,不知道以后会不会想起来慢慢更新吧,以后也应该好好多加强类的使用呜呜呜
    • 原本写的移动、碰撞系统简直糟糕的一塌糊涂,但是由于别人的提醒想到使用现实物理中的速度、加速度等概念一下子变得流畅、明朗了好多,看来自己以后也应当思维更加开阔才行欸

关于游戏

  • 原本打算开发双人对战模式以及单人闯关模式,但是由于时间因素,以及对如何写AI的不熟练(其实还是懒)于是只写出来简陋的双人模式…
  • 游戏操作:
    • player1: wasd控制方向,g为攻击键,提起大剑发起冲锋,有2s的冷却,在近距离冲撞到敌人会将敌人击飞
    • player2: ←↑↓→对应方向键,l为攻击键,使用手枪发出子弹,子弹只能在屏幕中存在3颗,手枪有一点后坐力,击中敌人会将其持续击飞
    • w键和↑键为喷气背包跳跃(虽然没有喷气效果o( ̄▽ ̄)o)持续按住可以飞高,可在空中二连跳,但是要小心上方尖刺哦
    • 死亡判定:连续超出左右屏幕2s会造成死亡(在屏幕上会有提示)碰触到上下方的尖刺也同样会造成死亡
more >>
  • 项目练手

展开全文 >>

Hexo blog 的搭建 以及主题 yilia 的应用

2019-08-27
字数:784字 | 预计阅读时长:3分钟

Hexo blog 的搭建 以及主题 yilia 的应用

Hexo 简介

  • Hexo 是基于Node.js的个人博客框架,可以方便的部署到Github等网站上,且支持markdown格式书写,以及更换主题等功能

Hexo 搭建

  1. 安装Node.js
    下载地址 选择LTS长期支持版

  2. 打开Git Bash(推荐)或cmd 切换至root 用户 并输入npm -v查看包管理器版本号

  3. 安装cnpm(淘宝的源,国内用npm的国外源太慢)

    输入npm install -g cnpm --registry=https://registry.npm.taobao.org指令

  4. 安装hexo框架

    输入cnpm install -g hexo-cli

  5. 查看hexo版本

    v输入hexo -v

  6. 建立blog文件夹并进入目录

    输入mkdir blog+cd blog

  7. 生成hexo 博客

    输入sudo hexo init

  8. 启动hexo博客本地服务器

    输入hexo s(hexo server的简写)

    并用浏览器进入 localhost:4000 网页

  9. 新建hexo 文章

    输入hexo n '文章名字'

  10. 重新部署

    输入hexo clean+hexo g(hexo generate)+ hexo s

部署到Github

  1. 在Github上创建仓库,命名为GithubID.github.io(GithubID是你账号的名称)非常重要,名称必须按照规范

  2. 打开Git Bash(cmd)

    输入cnpm install hexo-deployer-git--save

  3. 打开blog根目录,找到_config.yml文件并打开

    找到底端 #Deployment 行进行配置

    type: git

    repo: https://github.com/GithubID/GithubID.github.io.git (自己Github仓库的地址)

    branch: master

    注: type repo branch 冒号后面一定要加空格!

  4. 部署到远端服务器

    输入hexo d(hexo deploy)

应用yilia主题

  1. 输入git clone https://github.com/litten/hexo-themo-yilia.git themes/yilia(需要进入blog 根目录)

  2. 找到 yilia文件夹中_config.yml文件并打开进行配置

    找到 #Extensions 中theme一行 并改为theme: yilia(注意空格!)

  3. 执行重新部署 hexo clean | hexo g | hexo d

个性化设置

1 更改默认字体

找到yilia/source文件夹中的main.0c68a.css文件 找到header-author 对font-family的行进行更改即可

2 在左侧边栏显示总文章数

找到themes\yilia\layout_partial\left-col.ejs

在

1
2
3
4
5
6
7
8
> <nav class="header-menu">
> <ul>
> <% for (var i in theme.menu){ %>
> <li><a href="<%- url_for(theme.menu[i]) %>"><%= i %></a></li>
> <%}%>
> </ul>
> </nav>
>

​ 后面加入 (注意编码模式要将ANSI改为utf-8,否则无法使用中文!)

1
2
3
4
> <nav>
> 总文章数: <%=site.posts.length%>
> </nav>
>

3 添加字数统计功能

首先需要安装 hexo-wordcount

使用命令cnpm i --save hexo-wordcount

找到themes\yilia\layout_partial\article.ejs

在header下添加(同样改成utf-8编码)

1
2
3
4
> <div align="center" class="post-count">
> 字数:<%= wordcount(post.content) %>字 | 预计阅读时长:<%= min2read(post.content) %>分钟
> </div>
>

4 去除网页右下角powered by hexo等字样

找到themes/next/layout/_partials/footer.swig文件,并使用<–! 注释 –>注释掉即可

5 若想在博客中添加图片则可以通过markdown添加,并将图片放到source文件夹下的img文件夹,再设置路径./img/photo.jpg来显示,不过需要注意的是图片名字必须是英文!

  • 环境搭建

展开全文 >>

酷Q机器人插件——小渣抓取机器人

2019-08-26
字数:972字 | 预计阅读时长:4分钟

酷Q机器人插件——小渣抓取机器人

难度:中等

应用技术:基于酷Q机器人Air开发的聊天记录机器人,分别包括Python版本以及C++版本

主要收获:

  • 开发了自己第一款有实际用途的应用插件
  • 尝试阅读官方文档使用了对应API开发应用

不足:

  • Python版本的官方接口并不完善,无法进行打包应用,所以需要用户自行安装开发环境

  • C++由于开发难度较大,许多功能由于技术原因无法实现,只好暂时搁置

使用方法:(Python版本)

  1. 安装Python环境:

    https://gitee.com/muxiaofei/coolq_sdk_x/wikis/pages

  2. 将 酷Q Air\app\cn.muxiaofei.coolq_sdk_x目录下 CQPlusHandler.py文件替换

  3. 启用酷Q中的应用小渣抓取机器人,并重载应用

  4. 向机器人发送$readme指令,并根据指令来进行操作

具体功能:

  1. 可以将每天的聊天记录按天以text文本的格式保存
  2. 可以设置关键词(如ID,时间,内容,发送人等等)来在当天消息记录中搜索相关内容
  3. 通过指令查询,添加,删除关键词
more >>
  • 项目练手

展开全文 >>

飞碟大战坦克小游戏

2019-08-26
字数:3.8k字 | 预计阅读时长:22分钟

飞碟大战坦克小游戏

我做的第一个基于C语言完成的小游戏

应用技术:C语言Acillib图形库

收获:C语言做的第一个小项目,几乎将所有C语言的基础内容都使用了一遍,包括结构,链表的数据结构,文件的使用,以及基础的图形库运用,了解了回调函数触发事件的简单游戏机制,算得上是自己第一个处女作了吧

具体使用方法

点击acllibl.exe文件运行即可

more >>
  • 项目练手

展开全文 >>

igxe磨损比价爬虫

2019-08-26
字数:978字 | 预计阅读时长:4分钟

igxe-csgo饰品磨损比价爬虫

自学web以及python爬虫的第一个练手项目

难度:简单

应用技术:request库 re库 jsonpath库 BeautifulSoup库

主要收获:

  • 利用浏览器开发者工具中的Network 的XHR来或许网页异步发送的请求(比如翻页之后的信息)
  • 通过jsonpath库 来抓取json格式的数据文件
  • 简单的使用re库获取信息

不足:igxe网站反爬虫难度不大,未设有登录验证以及滑块验证码等复杂操作,因此难度过于简单

使用方法

环境要求:request库 BeautifulSoup库 jsonpath库(使用pip install 指令安装)

具体用法:

  • 输入关键字(建议输入完整的商品名称 e.g. AWP | 二西莫夫 (久经沙场) )
  • 输入期待的最高价格,程序会给出改价格内能买到的最低的磨损
  • 程序会在根目录生成 data.text 文件,里面包含了该商品的所有磨损及对应价格
  • 源码中的 choice 变量默认为0,但若搜索的饰品包含了StatTrack则将 choice 改成1可显示带计数器的皮肤

后记

该项目只是第一个练手,我根据情况说不定会更新其他饰品网站的比价程序(呼声较高的是网易BUFF),但是其他网站说不定会更难爬取一些,一切看我情况再说啦(。・∀・)ノ

more >>
  • 项目练手

展开全文 >>

12Next »
© 2019 DAZHA大渣 载入天数...载入时分秒...
本站总访问量次
  • 所有文章
  • 友链
  • 关于我

tag:

  • 环境搭建
  • 读书心得
  • 项目练手

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 啥都没有哦
这里是DAZHA大渣的个人博客哦!