第六章 字符串操作 前言 这一章节讲了关于 Python 中字符串类型的知识.与字符串有关的操作符,方法等等. 处理字符串:字符串的写入.打印.访问的知识 原始字符串 格式:r'string'作用:在其中的\ 不会被 Python 认为是转义字符的开始,而是字符串的一部分 三重引号 格式:“”“ ”“”作用: 三重引号之间的所有引号.制表符或换行,都被认为是字符串的一部分. 作为多行注释 注意:三重引号中的转义字符是 optional 的 双引号&转义字符 双引号内的‘会被打印出来,''中不能有…
1. 字符串, string模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分? str1 = 'abcdefghijklmnopqrstuv' print str1.find('abcd') #若找到则返回子串的起始index, 若未找到则返回-1 print str1.count('abd') #若count数量大于0 则表示子串是str1的一部分. print str1.index('abc') #若未找到返回异常, 找到则返回相应的index. 2.…
一. 在线程中运行任务 无限制创建线程的不足 .线程生命周期的开销很高 .资源消耗 .稳定性 二.Executor框架 Executor基于生产者-消费者模式.提交任务的操作相当于生产者.运行任务的线程则相当于消费者. 1. Executors 返回 ExecutorService 2. ExecutorService方法submit.execute 3. ExecutorService.submit 返回 Future 线程池,Executors方法介绍 方法名 解释 newFixedThre…
导读:本章带读者理解什么是控制语句,然后逐个讲解C语言常用的控制语句,含有控制语句的代码量多起来后就要注意写代码的风格了,本章末节都是练习题,大量的练习才能掌握好控制语句的使用. 6.1 什么是控制语句 翻回第一章,当时为了讲解计算机程序,举了一个打酱油的例子: 第一种做法:首先要准备好100块钱,然后出门要穿好衣服鞋袜,出门到便利店,拿到酱油付完钱,店家找钱,返回家中. 可以用更加精细的描述这个行为: 准备100块钱,或许要翻箱倒柜,直到找到100块钱才可以出门,这段时间发生的事情可以用如下语…
很多程序和脚本都通过环境变量来获取系统信息.存储临时数据和配置信息. 6.1 什么是环境变量: bash shell用一个叫环境变量(environment variable)的特性来存储有关shell会话和工作环境的信息. 这项特性允许在内存中存储数据,以便程序能轻松访问到它们. 在bash shell中,分两类: 全局变量:对于shell会话和所有生成的子shell都是可见的 局部变量:只对创建的它们的shell可见 6.1.1全局环境变量 查看全局变量,  $env    $printen…
构造方法 一:概念: 给对象的数据(属性)进行初始化 二:特点: a.方法名与类同名(字母大小写也要一样) b.没有返回值类型 c.没有具体的返回值 return 三:构造方法重载: 方法名相同,与返回值类型无关(因为构造方法没有返回值),只看参数列表 注:如果没有写出构造方法,系统自动提供一个无参的构造方法,如果我们给出了构造方法, 系统不再提供构造方法. class Student{ //下面是构造方法 public Student{ //无参构造方法 } public Person(Str…
1,饿汉模式/单例模式,一开始就新建一个静态变量,后面用getInstance()都是同一个变量 2,懒汉模式/单例模式,在getInstance()才会new一个对象,在第一个有了后不会继续创建 3,懒汉模式有线程不安全问题,用double-check lock方法,(检查两次null,再用同步锁 4,处理同步,1,多个对象,2,ThreadLocal 5,线程出现异常的捕捉方法,1,new 一个UncaughtExcptionHanler()重写里面的uncaughtException(Th…
任务:通常是一些抽象的且离散的工作单元.大多数并发应用程序都是围绕"任务执行"来构造的,把程序的工作分给多个任务,可以简化程序的组织结构便于维护 一.在线程中执行任务 任务的独立性:任务并不依赖于其他任务的状态,结果和边缘效应.独立的任务可以实现并行执行 1.串行的执行任务 所有的任务放在单个线程中串行执行,程序简单,安全性高,不涉及同步等情况,缺点也显而易见,无法提高吞吐量和响应速度,适合任务数量很少并且执行时间很长时,或者只为单个用户使用,并且该用户每次只发出一个请求. 2.显示的…
1.线程池 众所周知创建大量线程时代价是非常大的: - 线程的生命周期开销非常大:创建需要时间,导致延迟处理请求,jvm需要分配空间. - 资源消耗:线程需要占用空间,如果线程数大于可用的处理器数量,那么线程就会闲置,这给Gc造成压力.线程在竞争cpu的时候也会造成性能开销,所以线程不是越多越好,使用不当并不会增加运行效率. - 稳定性:使用不当会造成内存溢出. 继而就引申出线程池. 1.1线程池的创建 Executors框架:静态方法创建 newCachedThreadPool:创建可变线程数…
第五章: 1.题外话:首先大声疾呼,"js无罪",有罪的是滥用js的那些人.js的father 布兰登-艾克,当初为了应付工作,10天就赶出了这个js,事后还说人家js是c语言和self语言"约"的产物,(百度百科说的,这些).....一个可怜的孩子-js.然后命运弄"人",js此时已世人皆知.可能是因为js的毁誉参半,它老爸才不想承认它吧.如果js会说话,它可能会给它布兰登-艾克说,"你当初怎么不把*******在墙上".这…