MySQL修改默认字符集为utf8的方法安装MySQL默认是latin1,而不是utf8,所以最好在本地修改为utf8格式,以下是具体方法 。 在MySQL下输入: mysql> show variables like 'character%'; 检查各项是否为ut ...
notes for statistical learning 1
统计学习方法入门学习笔记1
名词解释
- 统计学习:即统计机器学习,目的是对数据进行预测和分析;以方法为中心,统计学习方法1.构建模型2.应用模型进行预测和分析;系统通过数据及统计方法提高系统性能的机器学习,即是统计学习。
- 统计学习的前提:同类数据具有一定的统计规律性。
- 统计学习三要素:模型,策略(模型选择的准则),算法(求解最优模型的方法)。
- 监督学习:从training data出发,由算法实现最优模型的选取,使它对training data和test data在给定评价准则下有最优的预测(假设两种 data独立同分布)。学习一个由输入到输出的映射,这一映射由模型来表示。换句话说,学习的目的就在于找到最好的这样的模型。由人工给出训练集,所以是监督学习。
- 模型f(X):属于由输入空间到输出空间的映射的集合,此集合就是假设空间。模型一般由P(Y|X)或Y=f(X)表示,前者是条件概率分布,后者是决策函数。
决策函数:非概率模型,类似y=f(x)即Label=f(Features),
1
2
3def classify(features):
# do some logic
return label - 假设空间:假设‘要学习的模型属于某个函数’的集合,是理论上所有可能属性值构成的集合空间,一般有无穷多个。
notes for Shell 1
Shell入门知识1
学习链接
名词解释
- Shell:一种应用程序,用户通过这个界面访问OS内核的服务。
- Shell脚本(shell script):A shell script is a text file containing shell commands. 为shell编写的脚本程序。一般来说的shell编程都是指shell脚本编程。
- 脚本语言:短小的,用来让计算机自动化完成一系列工作的程序,这段程序可以用文本编辑器修改,不需要编译,通常是解释运行的。
干货正文
Shell脚本示例
1
2
#!/bin/bash
echo "Hello World !"
Shell变量
与C语言类似的规范,但:
变量名和等号之间不能有空格
1
my_name="hahajun"
使用一个定义过的变量,只要在变量名前面加美元符号即可,花括号建议 添加,不加亦可。二次赋值时可不加美元符号,使用时必加。
1
2
3echo $my_name
echo ${my_name}
my_name="dafeige"readonly修饰只读变量
1
2
3#!/bin/bash
myurl="http://likehui.fun"
readonly myurl删除变量
1
2
3#!/bin/bash
myurl="http://likehui.fun"
unset myurl
Multithread and ThreadPool
多线程与线程池
名词解释
- 进程(process):计算机已运行程序的实体。程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。用户下达运行程序的命令后,就会产生进程。同一程序可产生多个进程(一对多关系),以允许同时有多位用户运行同一程序,却不会相冲突。进程是拥有资源的基本单位。进程需要一些资源才能完成工作,如CPU使用时间、存储器、文件以及I/O设备,且为依序逐一进行,也就是每个CPU核心任何时间内仅能运行一项进程。进程之间是资源隔离的,如果在进程间共享内容/消息传递代价较大。
- 线程:进程中负责程序执行的执行单元,线程是独立调度(CPU调度)和分派的基本单位,OS做调度时处理的是线程。一个进程中至少有一个线程,每个线程执行的都是进程代码中的某个片段。每个线程都拥有单独的栈内容来做存储本地数据。
- Java有没有多进程编程?否!java程序运行在JVM中,JVM本身就是java.exe运行起来,所以对OS而言,JVM是一个进程,其中无法进行多进程编程。
- 多线程:多条线程同时存在,例如写word时,一边输入一边自动保存,就需要两条线程来分别完成。关键技术:线程间通信,线程间共用资源。
- 线程池:一种线程使用模式。使用少量线程并让线程保持忙碌。以避免每个用户的请求都反复创建线程的开销。当线程池的线程刚创建时,让他们进入阻塞状态,等到任务来了唤醒即可。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。
有关线程你该知道的
创建线程的两种方式:
- 继承Thread类,扩展线程;
- 实现Runnable接口,java不支持多类继承,所以要继承其他类时调用Runnable接口更好。
具体代码及解释参考文首孙富生简书链接。
Thread类中的start()和run()方法区别
- 调用run()方法,用当前线程去执行一个普通方法,并没有创建新线程;
- 调用start()方法才会启动新线程,该方法会做一些准备工作:设置好这个线程的上下文,比如这个线程的栈(用于函数调用),线程的状态,这个线程的PC(Program Counter)等等一系列信息以后,这个线程才可以被调度,一旦被调度,就会执行那个run()方法了。
notes_for_HeadFirstServletsAndJsp3
Head First Servlets&JSP 读书笔记_3
名词解释
J2EE:Java 2 Enterprise Edition,包含了Web容器和EJB(Enterprise JavaBean)容器,而tomcat只是一种Web容器,不是完整的J2EE应用服务器
独立的EJB容器?独立的EJB容器已经过时,目前所有的EJB容器都作为完整J2EE的一部分
POJO:Plain Old Java Object,普通的java对象。与JavaBean的区别是,POJO可以有属性和getter/setter方法,可以有简单的运算属性,但不允许有业务方法和connection之类方法
scriptlet代码:
In JavaServer Pages (JSP) technology, a scriptlet is a piece of Java-code embedded in the HTML-like JSP code. The scriptlet is everything inside the <% %> tags. Between these the user can add any valid Scriptlet i.e. any valid Java Code.
[译]JSP中的scriptlet是指在类HTML的JSP中的标准java代码段,使用”<% %>”的格式。请求分派机制:容器机制,容器管理的一个组件调用另一个组件
web与MVC
[理解]MVC:将Servlet中做业务逻辑的功能(查询DB,插入DB,把HTML输出到响应流返回客户)搬到业务层和持久层。业务逻辑本身应该作为一个可重用的Java类,让业务逻辑根本不知道有表现的存在。
原本Servlet完成的输出HTML的工作,现在Servlet将请求转发给适当的JSP,再由JSP建立响应HTML,并将其返回。
1
2
3
4
5
6
7
8
9
10
11
12//用ssm的controller凑合理解一下。。
//从这个url(admin_category_list)进来
@RequestMapping("admin_category_list")
public String list(Model model,Page page) {
List<Category> cs=categoryService.list(page);
int total=categoryService.total();
page.setTotal(total);
model.addAttribute("cs",cs);
model.addAttribute("page",page);
//视图跳转到listCategory.jsp文件
return "admin/listCategory";
}功能分隔:
- 视图:负责表示方面。它从控制器得到模型的状态。另外视图还要获得用户的输入,并交给控制器。
- 控制器:从请求获得用户输入,并明确这些输入对模型有什么影响。告诉模型自行更新,并且让视图(JSP)能得到新的模型状态。
- 模型:包含具体的业务逻辑和状态。即模型知道用什么规则来得到和更新状态。购物车的内容(和处理购物车内容的规则)就属于MVC中的模型。系统中只有这部分与数据库通信(不过它可能会使用另一个对象完成具体的数据库通信,但这种模式以后再讲)。
notes_for_HeadFirstServletsAndJsp2
Head First Servlets&JSP 读书笔记_2
名词解释
- 消息体/负载 :Payload,是数据传输的根本目的,也称实际数据/数据体;
- 元数据:也称数据头/开销数据,是帮助负载传输的辅助;
- MIME类型:规范的一种,用以描述报文类型的内容和组织形式,包含HTTP响应首部中content-type,Content-Transfer-Encoding等;
- 端口列表 :TCP/UDP端口列表
- 部署描述文件(deployment descriptor,DD),即web.xml。每个Web应用需要一个DD,但一个DD可以声明多个servlet
干货正文
为什么有时不建议用HTTP GET?
- Get的总字符数有限,(取决于服务器),如果在搜索框中写入太多,可能使get方法无法正常工作;
- get数据会加到URL后面,在浏览器地址栏中显示出来;
- 然而,用了post,用户将不能对一个表单提交建立书签,get请求的url能保存为浏览器书签;
- 然而,用了post,请求不能被缓存下来,不会保存在浏览记录中。
Web服务器自己不做的两件事
1、动态内容;2、在服务器上保存数据
- Web服务器只提供静态页面。web服务器与辅助应用通信,由辅助应用具体写出HTML(即时页面);
- 用户提交表单数据时,web服务器看到表单数据,将其移交给辅助应用,由这个应用为客户生成一个响应。
辅助应用
通常包含Servlet和CGI(Common Gateway Interface),两者各有优缺点。
放在Servlet中的HTML的糟糕表现
在servlet中创建一个动态Web页面就需要把整个HTML打印到一个输出流,以下是未ps版代码,ps版代码是将java代码放入HTML中(即jsp)
1 | out.println("<html>"+ |
How to send files to cloud server
采用scp的方式,scp的更多用法参考scp命令 从mac向linux服务器发送文件/目录发送文件scp /Users/lee/Desktop/z1.png root@***.**.***.***:/usr/local 解释 :scp local_file remote_usernam ...
notes_for_HeadFirstServletsAndJsp1
Head First Servlets&JSP 读书笔记_1
开篇思考
Q:web的体系结构?
A:请求到来时,必须要有人实例化servlet,或至少新建一个线程处理这个请求。必须有人调用servlet的doPost()和doGet()方法。必须有人把请求和响应交给servlet。有人管理servlet的生与死和servlet的资源。————由容器来完成。
Q:servlet要做的工作?
A:为客户服务。得到一个客户的请求,再发回一个响应。
Q:会话状态的作用是什么?
A:因为web服务器没有短期记忆(发送了响应,web服务器就会忘记你是谁,下次你再发出请求时,web服务器不会认识你),此时就需要会话来完成这项工作。
Q:JSP与servlet的关系?
A:Jsp会编程servlet。容器会查看jsp,把它转换成java源代码,再编译成完成的java servlet类。
Q:Jsp转换成servlet过程有哪些是程序员需要知道的?
A:需要知道转换过程,需要知道怎么在jsp中写java代码,需要知道如何编写jsp。需要学习EL,学习JSTL,学习过滤器…
operationSystem_primary_1
操作系统基础部分_1
副标题:哈工大 李志军《操作系统》
计算机上电后启动(看不懂,以后补充)
完成功能:读入内存,完成初始化
Q:os在磁盘上如何取指执行?
A:将os从磁盘载入内存中。由一开机时的操作系统第一段代码,即bootsect.s程序(为控制编写代码出现的位置,使用汇编)来完成。
- 对于Intel x86 PC , 开启电源后, 机器就会开始执行ROM BIOS的一系列系统测试动作,包括检查RAM,keyboard,显示器,软硬磁盘等等。执行完bios的系统测试之后,紧接着控制权会转移给ROM中 的启动程序(ROM bootstrap routine);这个程序会将磁盘上的第0轨第0扇区(叫boot sector或MBR , 系统的引导程序就放在此处)读入内存中,并放到自0x07C0:0x0000开始的512个字节处;然后处理机将跳到此处开始执行这一引导程序;也即装入 MBR中的引导程序后, CS:IP = 0x07C0:0x0000 。加电后处理机运行在与8086相兼容的实模式下。
- 如果要用 bootsect-loader进行系统引导,则必须把bootsect.S编译连接后对应的二进制代码置于MBR ; 当ROM BIOS 把bootsect.S编译连接后对应的二进制代码装入内存后,机器的控制权就完全转交给bootsect ; 也就是说,bootsect将是第一个被读入内存中并执行的程序。
Q:bootsect.s程序做了什么事情 ?
A:将os代码分段读入。先读入setup,然后屏幕打印开机logo,再然后调用BIOS的13号中断把os的system部分读入 ,任务完成。然后交给setup取址执行。
primary_javaweb_forHTML
javaweb基础之HTML_1
HTMl基本结构
可参考教程w3schools
1 | <!DOCTYPE html> |
- The “!DOCTYPE html” declaration defines this document to be HTML5,It must only appear once, at the top of the page (before any HTML tags).The <!DOCTYPE> declaration is not case sensitive.
- The “html” element is the root element of an HTML page
- The “head” element contains meta information about the document
- The “title” element specifies a title for the document
- The “body” element contains the visible page content
- The “h1” element defines a large heading
- The “p” element defines a paragraph