语言基础
未读《Java核心技术》读书笔记
前面阅读了《Java 编程思想》,可能是水平不够吧,感觉读起来很吃力,这次拿 《Java核心技术》 复习下。
《JAVA编程思想》 和 《JAVA核心技术Ⅰ》 看哪本? - 知乎https://www.zhihu.com/question/29745861
这次就不再那么详细地记录了。
第一章 Java 程序设计概述主要介绍了 Java 程序的平台:Java SE、Java EE、Java ME 及 Java 发展简史。
第二章 Java 程序设计环境主要介绍了 Java 环境的搭建以及常用命令行工具。
javac Main.javajava Main
javac 是 Java 编译器,将 Main.java 源代码编译为 Main.class ;java 启动 Java 虚拟机,虚拟机执行 class 文件中的字节码。
然后介绍了 图形化应用程序 和用于浏览器的 applet 技术。
第三章 Java 的基本程序设计结构Hello Worldpackage com.wshunli;public class Main { public ...
移动端技术
未读《第一行代码》读书笔记 – 应用组件之 BroadcastReceiver
《第一行代码》读书笔记(一)– 平台架构 (第1章)《第一行代码》读书笔记(二)– 应用组件之 Activity (第2、4章)《第一行代码》读书笔记(三)– 应用组件之 Service (第10章)《第一行代码》读书笔记(四)– 应用组件之 BroadcastReceiver (第5章)《第一行代码》读书笔记(五)– 应用组件之 ContentProvider (第7章)《第一行代码》读书笔记(六)– 数据存储方案 (第6章)《第一行代码》读书笔记(七)– 多媒体资源 (第8章)《第一行代码》读书笔记(八)– 网络编程 (第9章)
第5章 全局大喇叭BroadcastReceiver,广播接收者,它是一个系统全局的监听器,用于监听系统全局的 Broadcast 消息,所以它可以很方便的进行系统组件之间的通信。
BroadcastReceiver 属于系统级的监听器,它拥有自己的进程,只要存在与之匹配的 Broadcast 被以 Intent 的形式发送出来,BroadcastReceive ...
《Java编程思想》读书笔记 —— 并发。
第21章 并发Java 是一种多线程语言,并且提出了并发问题。
并发解决的问题大致可分为两类:速度,设计的可管理性。
基本的线程机制并发编程使我们可以将程序划分为多个分离的、独立运行的任务。一个线程就是在进程中的一个单一的顺序控制流,因此,单个进程可以拥有多个并发执行的任务,但是你的程序使得每个任务都好像有其自己的 CPU 一样。其底层机制是切分 CPU 的时间。
1、定义任务
线程可以驱动任务,因此你需要一种描述任务的方式,这可以由 Runnable 接口来提供。
public class LiftOff implements Runnable { protected int countDown = 10; // Default private static int taskCount = 0; private final int id = taskCount++; public LiftOff() {} public LiftOff(int countDown) { this.c ...
本文介绍 Spring MVC 常用注解,包括 @Controller、@RequestMapping、@PathVariable、@RequestParam、@RequestBody、@ResponseBody、@RestController 等等。
1、@Controller
Controller 控制器是通过服务接口定义的提供访问应用程序的一种行为,它解释用户的输入,将其转换成一个模型然后将试图呈献给用户。
其实 @Repository、@Controller、@Service 都组合了 @Component 元注解。
@Controllerpublic class PersonController {}
2、@RequestMapping
@RequestMapping 注解用于映射 Web 请求(访问路径和参数)、处理类和方法的。
@RequestMapping 可以注解在类和方法上,注解在方法上的路径会继承注解在类上的路径;支持 Servlet 的 request 和 response 作为参数。
@Controller@RequestMappin ...
本文记录下 Spring Boot 参数配置以及生产环境与开发环境分离配置。
推荐使用 yml 配置 Spring Boot ,可以省略重复内容,也有较好的提示。
直接修改 application.properties 为 application.yml 即可。
简单参数配置我们在使用 Spring Boot 时难免会使用一些简单的配置配置,也就是在配置文件 application.yml 配置相应变量的值,然后使用 @Value 注解取得。
// application.ymlusename: wshunli// HelloController@Value(value = "${usename}")String wshunli;
这样还是有点麻烦,我们可以新建一个类:
package com.wshunli.spring.boot.demo;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframewor ...
计算机基础
未读计算机操作系统 进程管理 部分的内容。
感觉这部分面试问得也比较多,比如进程和线程得区别啥的。
第二章 进程管理
进程的基本概念程序顺序执行时的特征:(1) 顺序性:处理机的操作严格按照程序所规定的顺序执行,即每一操作必须在上一个操作结束之后开始。(2) 封闭性:程序是在封闭的环境下执行的,即程序运行时独占全机资源,资源的状态(除初始状态外)只有本程序才能改变它。程序一旦开始执行,其执行结果不受外界因素影响。(3) 可再现性:只要程序执行时的环境和初始条件相同,当程序重复执行时,不论它是从头到尾不停顿地执行,还是“停停走走”地执行,都将获得相同的结果。程序顺序执行时的特性,为程序员检测和校正程序的错误带来了很大的方便。
前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。
又来活了,未完待续。。
计算机基础
未读还要几天才能回家,就先看看计算机操作系统概论的内容 ,继续朝着目标前进。
具备扎实的数据结构和计算机系统基础,编码功底扎实。
这次选择的课本是《计算机操作系统》(第三版),主编是汤小丹老师。
第一章 操作系统引论
计算机系统由硬件和软件两部分组成。操作系统(OS,Operating System)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。
从一般用户的观点,可把 OS 看做是用户与计算机硬件系统之间的接口;从资源管理的观点看,则可把 OS 视为计算机系统资源的管理者。另外,OS 实现了对计算机资源的抽象,隐藏了对硬件操作的细节,使用户能更方便地使用机器。
操作系统的发展过程OS的形成迄今已有50多年的时间。在上世纪50年代中期出现了单道批处理操作系统;60 年代中期产生了多道程序批处理系统;不久又出现了基于多道程序的分时系统,与此同时也诞生了用于工业控制和武器控制的实时操作系统。
操作系统的基本特性微机操作系统可分为单用户单任务操作系统、单用户多任务操作系统、多用户多任务操作系统,具有并发、共享、虚拟和异步这四个基本特征。
1、并发性
并行性和并发性(Concurren ...
移动端技术
未读Android NDK 是一套允许您使用原生代码语言(例如 C 和 C++)实现部分应用的工具集。在开发某些类型应用时,这有助于您重复使用以这些语言编写的代码库。
那我们为什么要使用 NDK 呢?
代码的保护。由于 apk 的 Java 层代码很容易被反编译,而 C/C++ 库反汇难度较大。
可以方便地使用现存的开源库。大部分现存的开源库都是 用C/C++ 代码编写的。
提高程序的执行效率。将要求高性能的应用逻辑使用 C 开发,从而提高应用程序的执行效率。
便于移植。用 C/C++ 写得库可以方便在其他的嵌入式平台上再次使用。
上述文字致谢 Devin Zhang 提供理论支持
本文默认已配置好 Android 开发环境,关于 Android 开发环境配置可参考:http://www.wshunli.com/posts/f6977dbb.html
NDK 环境配置1、首先应该下载 NDK
官方指定的下载地址:https://developer.android.google.cn/ndk/downloads/index.html
可能因为网络原因打不 ...
Glide 是一个快速高效的 Android 图片加载库,注重于平滑的滚动。Glide 提供了易用的 API,高性能、可扩展的图片解码管道(decode pipeline),以及自动的资源池技术。
Glide 介绍Glide 支持拉取,解码和展示视频快照,图片,和GIF动画。Glide的Api是如此的灵活,开发者甚至可以插入和替换成自己喜爱的任何网络栈。默认情况下,Glide使用的是一个定制化的基于HttpUrlConnection的栈,但同时也提供了与Google Volley和Square OkHttp快速集成的工具库。
虽然Glide 的主要目标是让任何形式的图片列表的滚动尽可能地变得更快、更平滑,但实际上,Glide几乎能满足你对远程图片的拉取/缩放/显示的一切需求。
Glide 简单使用0、添加 Glide 依赖
dependencies { implementation 'com.github.bumptech.glide:glide:4.5.0' annotationProcessor 'com.gith ...
Butter Knife 是一个专注于 Android 系统的 View 注入框架,可以减少大量的 findViewById 以及 setOnClickListener 代码,可视化一键生成。
Butter Knife 概述1.强大的View绑定和Click事件处理功能,简化代码,提升开发效率2.方便的处理Adapter里的ViewHolder绑定问题3.运行时不会影响APP效率,使用配置方便4.代码清晰,可读性强
Butter Knife 上手使用0、首先为项目添加 Butter Knife 依赖:
dependencies { compile 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'}
1、简单使用示例:
首先在 onCreate 绑定 Activity 实例。
package com.wshunli.butterknifedemo;import andr ...







