1.异常的传播 当某个方法抛出异常时: 如果当前方法没有捕获,异常就被抛到上层调用方法 直到遇到某个try...catch被捕获 使用printStackTrace()打印处方法的调用栈 import java.lang.String; public class Main { public static void main(String[] args) { try{ process1(); }catch (Exception e){ e.printStackTrace();//对于调试错误非常有…
1捕获异常 1.1 finally语句保证有无错误都会执行 try{...}catch (){...}finally{...} 使用try...catch捕获异常 可能发生异常的语句放在try{...}中 使用catch捕获对应的Exception及其子类 1.2 捕获多个异常 try{...} catch() {...} catch(){...}finally{..} 使用多个catch子句: 每个catch捕获对应的Exception及其子类 从上到下匹配,匹配到某个catch后不再继续匹配…
1.计算机运行中的错误 在计算机程序运行的过程中,错误总会出现,不可避免的 用户输入错误 读写文件错误 网络错误.内存耗尽.无法连接打印机不可 String s = "abc"; int n = Integer.parseInt(s); 2.Java异常 Java使用异常来表示错误: 异常是class,本身带有类型信息 异常可以在任何地方抛出 异常只需要在上层捕获,和方法调用分离 2.1Java的异常体系 Exception分为两类:RuntimeException和非RuntimeE…
JDK已有的异常: RuntimeException * NullPointerException * IndexOutOfBoundsException * SecurityException * IllegalArgumentException NumberOfFormatException IOException * UnsupportedCharsetException,FileNotFoundException,SocketException ParseException,Genera…
Commons Logging是Apache创建的日志模块: 可以挂接不同的日志系统 可以通过配置文件指定挂接的日志系统 自动搜索并使用Log4j 如果Log4j不存在,使用JDK Logging(JDK >= 1.4) 下载Commons Logging的jar包.导入jar包 http://commons.apache.org/proper/commons-logging/download_logging.cgi 选择binary的tar包或zip,解压即可. IDEA:file-proje…
1.断言 断言Assertion是一种程序调试方式 使用assert关键字 断言条件预期为true 如果断言失败,抛出AssertionError,停止程序 可选的断言消息,断言失败,就会抛出 public class Main { static double abs(double d){ return d >= 0 ? d : -d; } public static void main(String[] args){ double x = abs(-123.45); assert x <=…
1.Log4j Log4j是目前最流行的日志框架.有两个版本 1.x:Log4j 2.x:Log4j2 Log4j下载地址https://www.apache.org/dyn/closer.lua/logging/log4j/2.11.1/apache-log4j-2.11.1-bin.tar.gz,建议选择清华的镜像 导入log4j-api-2.11.1.jar,log4j-core-2.11.1.jar,log4j-jcl-2.11.1.jar即可 Commons Logging可以自动使用…
1.日志 为了取代System.out.println() 可以设置输出样式 可以设置输出级别,禁止某些级别输出 可以被重定向到文件 可以按包名控制日志级别 2.JDK内置Logging 在java.util.logging,这个日志用的较少. JDK Logging定义了7个日志级别: SEVERE WARNING INFO 默认 CONFIG FINE FINER FINEST 例子1 import java.util.logging.*; public class Main { publi…
for循环 for循环使用计数器实现循环 for循环条件需要设置:计数器初始值:循环前检测条件:每次循环后如何更新计数器 计数器变量通常命名为i int[] ns = {1,4,9,16,25}; for(int i=0;i<ns.length;i++) { System.out.println(ns[i]); } 注意:不要在循环体内修改计数器 特点:初始化计数器总是被执行:可能循环0次 for循环可以缺少初始化条件.循环条件和每次循环更新条件.通常不推荐这样写,容易产生死循环,如 for(i…
写爬虫似乎没有比用 Python 更合适了,Python 社区提供的爬虫工具多得让你眼花缭乱,各种拿来就可以直接用的 library 分分钟就可以写出一个爬虫出来,今天就琢磨着写一个爬虫,将廖雪峰的 Python 教程 爬下来做成 PDF 电子书方便大家离线阅读. 开始写爬虫前,我们先来分析一下该网站1的页面结构,网页的左侧是教程的目录大纲,每个 URL 对应到右边的一篇文章,右侧上方是文章的标题,中间是文章的正文部分,正文内容是我们关心的重点,我们要爬的数据就是所有网页的正文部分,下方是用户的…
感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. 生成器 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了. 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算…
写爬虫似乎没有比用 Python 更合适了,Python 社区提供的爬虫工具多得让你眼花缭乱,各种拿来就可以直接用的 library 分分钟就可以写出一个爬虫出来,今天尝试写一个爬虫,将廖雪峰老师的 Python 教程爬下来做成 PDF 电子书方便离线阅读. 开始写爬虫前,我们先来分析一下网站的页面结构,网页的左侧是教程的目录大纲,每个 URL 对应到右边的一篇文章,右侧上方是文章的标题,中间是文章的正文部分,正文内容是我们关心的重点,我们要爬的数据就是所有网页的正文部分,下方是用户的评论区,评…
本文内容是对廖雪峰老师Git教程做的笔记,外加一些自己的学习心得,还抱着学以致用的心态来实践一番 如有显示错误 请移步本人github:git教程小结 Git学习笔记 Git简介 安装Git 创建版本库repository 把文件添加到版本库 1.把文件添加到暂存区 2.把文件提交到版本库 Git bash操作文件及文件夹命令 查看Git安装目录 时光穿梭机 版本退回 工作区和暂存区 掌握仓库当前的状态 查看修改内容 撤销修改 文件名里有空格和()的情况 删除文件 远程仓库 添加远程库 从远程库…
1.JDK提供的InputStream分为两类: 直接提供数据的InputStream * FileInputStream:从文件读取 * ServletInputStream:从HTTP请求读取数据 * Socket.getInputStream():从TCP连接读取数据 提供额外附加功能的FilterInputStream * 如果要给FileInputStream添加缓冲功能: BufferedFileInputStream extends FileInputStream * 如果要给Fi…
廖雪峰的视频不全,以下是疯狂Java关于Map的讲解 1.Map定义 Map是一种键值映射表,可以通过key快速查找value,同python的dict.key不允许重复,value可以重复. Map 集合里保存这两组值,一组值保存Map里的key,一组保存Map里的value,key和value都可以是任何引用类型的数据. Map确实包含了一个keySet()方法,用于返回key组成的set集合.value类似于一个List,可以重复,通过key来查找. 常用方法: Object put(Ob…
最近在看廖雪峰的js教程,重温了下js基础,记下一些笔记,好记性不如烂笔头嘛 编写代码尽量使用严格模式 use strict JavaScript引擎是一个事件驱动的执行引擎,代码总是以单线程执行 执行中会自动在每行的结尾添加分号 区分大小写 浮点数通常比较难比较大小,参考es6 number epsilon NaN, Infinity 都是number类型 NaN表示不是一个数字,Infinity表示无穷大,NaN和其他任何数字都不相等 Null 表示空值 ,undefined表示未定义 对象…
函数 1.注意:函数的默认参数必须指向不可变对象 未修改前: def add_end(L=[]): L.append('END') return L 存在的问题:如果连续调用多次,会出现多个 'END' 对象 原因解释: Python函数在定义的时候,默认参数L就被计算出来了,即 [] ,因为默认参数L指向了可变对象[],每次调用的时候,如果改变了L的内容,下次调用的时候,L指向的内容也发生了改变,不再是函数定义时候的 [] 了. 修改后: def add_end(L=None): if L i…
函数的参数一节中提到: def add_end(L = []); L.append('END') return L 正常调用add_end时(也就是有参数传入时): >>> add_end([1, 2, 3]) [1, 2, 3, 'END'] >>> add_end(['x', 'y', 'z']) ['x', 'y', 'z', 'END']当使用默认参数时: >>> add_end() ['END'] >>> add_end()…
感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. 匿名函数 通过对比可以看出,匿名函数lambda x: x * x实际上就是: def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x表示函数参数. 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果. 用匿名函数有个好处,因为函数没有名字,不…
感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. 排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来. Python内置的sorted()函数就可以对list进行排序: >>…
感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素. 例如,在一个list中,删掉偶数,只保留奇数,可以这么写: def…
感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. Python内建了map()和reduce()函数. 我们先看map.map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回. 举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个list [1, 2, 3,…
感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. 列表生成式 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)): >>> list(range(1, 11…
感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. 切片 L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3.即索引0,1,2,正好是3个元素. 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] 取前3个元素…
感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看.   递归函数 举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出: fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = fact(n-1) x n 所以,fact(n)可以表示为n x fac…
感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看.   1.理解变量在计算机内存中的表示也非常重要.当我们写: a = 'ABC' 时,Python解释器干了两件事情: 在内存中创建了一个'ABC'的字符串: 在内存中创建了一个名为a的变量,并把它指向'ABC'. 2.常量 所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量.在Python中,通常用全部大…
这是小白的Python新手教程,具有如下特点: 中文,免费,零起点,完整示例,基于最新的Python 3版本. Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的JavaScript语言等等. 那Python是一种什么语言? 首先,我们普及一下编程语言的基础知识.用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个MP3,编写一个文档等等,而计算机干活的CPU只认识机器指令,…
从廖雪峰老师的python教程入门的,最近在看python爬虫,入手了一下 代码比较low,没有用到多线程和ip代理池 然后呢,由于robots.txt的限定,构建了一些user-agent,并放慢的爬虫的速度,起到一些效果,可能多次抓取才能完成所有文章~~~ 仅供一些刚入门的同学参考一下........ 用到的库及工具:(自行百度) 1.BeautifulSoup4 2.pdfkit 3.requests 4.wkhtmltopdf(需添加环境变量) 代码如下: # -*- coding:ut…
学习了廖雪峰老师的Git教程之后的命令总结,重点关于git和远程仓库的东西. 如果没有学过,这是传送门 下面这个图很重要 一.git初始化本地仓库和配置 echo "想输入到文件的内容,一般为# 库名字" >> README.md git init  初始化一个仓库   如果没有配置需要配置 git config --list git config --global user.email "zhoudu@bupt.edu.cn" git config -…
公元2018-10-21 实验室台式机 win7 64位 参考教程: 廖雪峰Git教程 其他资料:Git-book 北大一只总结的笔记,最终整理的时候可以参考:Git笔记 评论区看到的另一个人,总结在GitHub上:笔记 还得时不时查看软工时期学习记录的坑以免走不动的尴尬... 更新:忽然发现我没有仔细看评论区,以后有时间复习时要再看一次(・`ω´・) 2018-11-8-更新:千峰教育-Git工作流介绍 偶然在pt上看到的,B站有视频,看了一下,前面略鸡肋,后两三节有干货,还有有收获的.开心.…