第一节:数据结构基本知识 1.1 什么是数据结构 例:写程序实现一个函数PrintN,使得传入一个正整数位N的参数后,能顺序打印从1道N的全部正整数。 代码1(循环实现): void PrintN(int N){ int i; for(i =1; i<=N; i++) &n…
第一节:数据结构基本知识 1.1 什么是数据结构 例:写程序实现一个函数PrintN,使得传入一个正整数位N的参数后,能顺序打印从1道N的全部正整数。 代码1(循环实现): void PrintN(int N){ int i; for(i =1; i<=N; i++) &n…
第四章 网络编程(上) 4.1 URL对象 例:通过URL读取WWW信息 代码: import java.net.*; import java.io.*; public class URLReader{ public static void main(String[] args) throws Exception{ &n…
第四周:程序的控制结构 4.1 程序的分支结构 1.单分支结构 if<条件>: <语句块> 2.二分支结构 if <condition>: <yujukuai1> else: <yujukuai2> 还有一种紧凑表达式: <表达式1>if<条件> else<表达式2> 例如: guess =eval(input()) …
第三章 线程(下) 3.1 线程安全与线程兼容与对立 线程安全:当多个线程访问同一个对象时,如果不同考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的。它包括: (1)不可变。如果它访问的对象是不可修改的,那么它本身就是安全的。比如: ①final修饰:public final a =100; ②java.lang.String: String s = “String”;string常量 ③枚举类型:…
第三章:基本数据类型 3.1 数字类型及操作 1.整数类型 (1)pow(x,y)函数,计算x的y次方,想算多大算多大。 (2)4种进制表示形式: ①十进制:1010,99等; ②二进制:以0b或者0B开头:0b10,-0B101等; ③八进制:以0o或0O开头:0o123,-0O456等; ④十六进制:以0x或者0X开头:0x9a,-0X89等。 2.浮点数类型 取值范围为-10的308次方到10的308次方,精度数量级10的-16次方。 浮点数间存在不确定尾数,不是bug。为了解决这一个问题,可以使用roud(…
第二章 线程(中) 2.1 线程同步的思想 1.多线程的同步控制 有时候线程之间彼此不独立,需要同步: (1)线程间的互斥:同时运行的几个线程需要共享一个(些)数据;共享的数据,在某一时刻只允许一个线程对其进行操作。 如“生产者/消费者”问题:假设有一个线程负责往数据区写数据,另一个线程从同一数据区中读数据,两个线程可以并行执行,如果数据区已经满了,生产者需要消费者取走一些数据后才能再写入;当数据区空时,消费者要等生产者写入一些数据后再读取。 例:用两个线程模拟存票和售票过程: 假定开始售票处并没有票,一个线程往里…
第一章 线程(上) 1.1 线程的基本概念 一个线程是一个程序内部的顺序控制流。 多进程是指操作系统中,能同时运行多个任务(程序)。 多线程是在同一个应用程序中,有多个顺序流同时进行。 1.进程和线程的比较 (1)每个进程都有独立的代码和数据空间(进程上下文),进程的切换开销大。 (2)线程是轻量的进程,同一类线程共享代码和数据空间,每个线程都有独立的运行栈和程序计数器(PC),线程切换开销小。 2.线程的概念模型 线程在运行中,必须得到CPU资源。在Java中,就有一个类java.lang.Thread来模拟一个…