一、 Hello World jupyter中新建一个notebook print('hello world!') 运行结果如下 二、Python基础语法 2.1 缩进划分代码块 Python使用缩进划分代码块而不是{} 2.2 PEP8规范 PEP8规范是Python代码在书写时遵守的规范,并不是语法规则 2.3 关键字 已经定义好的具有一些特殊功能的关键字,查看关键字命令 help("keywords") 输出结果如下 2.4 标识符 标识符由数字、字母和下划线组成,且不能用数字作为开头,不能和关键字重名 2.5 注释 单行注释使用# 多行注释使用'''注释内容'''或者"""注释内容""" # 文件名:test.py ''' 这是多行注释,使用单引号。 这是多行注释,使用单引号。 这是多行注释,使用单引号。 ''' """ 这是多行注释,使用双引号。 这是多行注释,使用双引号。 这是多行注释,使用双引号。 """ 2.6 分割语句 一行中使用多个语句;分割 print("hello");print("world"); 2.7 多行语句 一个语句分成多行可以用/分割 tota.... 有更新! python知识总结--基础语法 python
python有六种常见的数据结构: Number (数字) String (字符串) List (列表) Tuple (元组) Dictionary (字典) Set (集合) 根据数据结构特性划分: 一、Number(数值) Python3支持int、float、bool、complex(复数)几种类型的数值 intfloatboolconplex 11.0True/False1+j 数值类型的基本操作 A=3,B=2 加法 C=A+B #5 减法 C=B-A #1 乘法C=A*B #6 除法C=A/B #1.5 取余C=A%B #1 取整C=A//B #1 a = 3 b = 2 print(a+b) print(a-b) print(a*b) print(a/b) print(a//b) print(a%b) 二、String(字符串) 字符串是字符的有序序列,它可以使用+、*运算,他是不可变的数据类型 使用单引号、双引号和三引号可以声明 "r"字符串变为原始字符串 "\"为转义字符 2.1 声明字符串 # 声明字符串 var1 = 'hello' var2 = "hello".... 有更新! python知识总结--常用数据结构 python
一、嵌套类 1.1 内部类 1.1.1 概念 内部类是定义在一个类中的类,内部类有以下特点 内部类的方法可以访问该类定义所在的作用域中的数据,包括私有数据 内部类可以对同一个包中的其他类隐藏起来 示例,下述代码中创建了一个类,里面有一个内部类,在内部类定义了一个定时器,定时输出当前时间,在TimerPrint内部类中,我们可以访问到TalkingClock的数据(包括静态变量、静态方法、普通变量、普通方法) class TalkingClock{ private int interval; private boolean beep; public static String NAME = "龙"; public TalkingClock(int interval, boolean beep){ this.interval = interval; this.beep = beep; } public void start(){ ActionListener actionListener = new TimerPrint(); Timer t = new Timer(interval,ac.... 有更新! Java基础--内部类和lambda表达式 Java基础
一、悲观锁和乐观锁 多线程访问共享资源时,会对共享资源有增删改查的操作; 悲观锁在线程操作共享资源期间,枷锁成功就会禁止其他线程操作共享资源; 乐观锁不限制各个线程对共享资源的操作,但是当线程要更新共享资源时,会先判断该资源有没有被其他线程修改,如果共享资源没有被其他线程更新,则更新共享资源,如果被其他资源更新,则根据自己的需求另作处理; 悲观锁适合写操作较多的场景,加锁可以保证数据正确性,java的synchronized和Lock都是悲观锁实现 乐观锁适合读操作较多的场景,不加锁可以提升性能,java的原子操作类就是基于乐观锁实现 二、自旋锁和非自旋锁 2.1 自旋锁 多线程获取共享资源时,若资源被其他线程占用,该线程就会等待获取锁资源,但是线程不会放弃已经拿到的CPU时间片,通过自旋等待共享资源被释放 2.2 非自旋锁 非自旋锁再等待其他线程施放锁的时候,会让出CPU时间片,使线程进入休眠,所释放后,才会重新获取CPU时间片 三、无锁、偏向锁、轻量级锁和重量级锁 偏向锁通过对比Mark Word处理加锁问题,避免执行CAS操作,轻量级锁通过CAS操作和自旋来解决加锁问题,避免线程.... 有更新! Java基础--常见的几种锁 Java基础
一、线程的状态 创建(NEW) 创建但是未调用start方法 可运行(RUNNABLE) 可能正在运行,也可能正在等待CPU时间片 阻塞(BLOCKED) 等待获取一个锁 等待(WAITING) 处于这种状态的线程不会被分配CPU执行时间,它们要等待被显式地唤醒 超时等待(TIMED_WAITING) 处于这种状态的线程不会被分配CPU执行时间,无须无限期等待被其他线程显示地唤醒,在达到一定时间后它们会自动唤醒 终止(TERMINATED) 线程运行结束 1.1 新建(NEW) 创建后尚未启动。 1.2 可运行(RUNNABLE) 可能正在运行,也可能正在等待 CPU 时间片。 包含了操作系统线程状态中的 Running 和 Ready。 1.3 阻塞(BLOCKED) 等待获取一个排它锁,如果其他线程释放了锁就会结束此状态 1.4 无限期等待(WAITING) 等待其它线程显式地唤醒,否则不会被分配 CPU 时间片 进入等待方法退出等待方法 Object.wait()Object.nofity或Object.nofityAll Thread.join()被调用的线程执行完毕 Lock.... 有更新! Java基础--多线程 Java基础