java算法之对一个整数用加法进行分解实例源码



java算法之对一个整数用加法进行分解实例源码介绍。比如输对于整数5,分解的结果为:

5 = 4 + 1
5 = 3 + 2
5 = 3 + 1 + 1
5 = 2 + 2 + 1
5 = 2 + 1 + 1 + 1
5 = 1 + 1 + 1 + 1 + 1

private static void splitInteger(int n) {
if(n<2 || n>10) {
System.out.println(“错误,参数的范围应该是[2, 10]!”);
} else {
int[] list = new int[n+1];
list[0][......]

Read more

Java线程之Semaphore实例源码介绍



Java线程之Semaphore实例源码介绍。一直对Semaphore不是很理解,感觉用Lock加Condition完全可以轻易替代它,它根本没有存在的必要。最近遇到一个例子,用Semaphore可以优雅的实现,用Lock加Condition却让我大费脑筋,主要原因是自己水平太不行了。记录下来,免得以后忘了。

例子:某单位有3台打印机,有10个用户提交打印任务,写程序模拟对打印机的管理。不废话,直接上代码

public class Main {
//主程序,很简单,开启10个线程,每个线程是一个打印任务
//线程间共享资源是PrintQueue,即打印机队列,负责对打印机进行管[......]

Read more

Java线程CountDownLatch实例源码讲解

Java线程CountDownLatch实例源码讲解。CountDownLatch的作用其实就是一个高级的线程同步工具,可理解是一个闸门,先运行一些线程,计算出一些结果,满足条件之后打开闸,然后另一些线程启动。换句话说,它将多个线程分为2类,一类开闸前运行,一类开闸后运行。对于开闸后运行的线程,调用await()方法后,进入等待状态,等待开闸。它内部有一个计数器,初始状态计数器为用户设定的正整数,当开闸前某个线程运行完毕后,调用它的countDown()方法将计数器减1,当计数器为0时,开闸。

典型应用:统计硬盘上文件的数目。针对硬盘的每一个分区,例如C盘、D盘、E盘等,单独开一个线程统[......]

Read more

Java算法之实现希尔排序实例源码

Java算法之实现希尔排序实例源码。什么是希尔排序步?希尔排序步长的选择很重要,不同的选择方式性能差异很大。实验时候,生成一个长度为 0×400000(该数字为16进制)随机的整形数组,存放于硬盘上的文本文件内。每次排序均将此数组读入内存后,再排序,再将排序结果写入硬盘文件。只对排序操作计时,读文件和写文件不计时。步长选择方式为最基本的1,2,4,8,16,32,64…size/2。在测试中,排序耗时7150毫秒。

private static void shellSort1(int[] a) {
int size = a.length;
for(int gap = size/2[......]

Read more

湛江一中培才学校第一届水火箭制作分组名单

已做好水火箭的名单

班别
姓名

初一39
庞文祥
张文浩(初一35)

初一21
杨越浩
柯宇洋

初一35
张韵锐
冯浩杰

初一35
黄至锐
欧阳颖

初一21
李东
何宗霖(初一35)

初二2
黄锦
杨蔡博君

高一1
陈漫施
吴依昕

高一1
陈冰
唐莉雅

初一4
王茗琛
王泽昊

已买的

班别
姓名

初一30
蔡霖
杜桦昕

初一3[......]

Read more

Java线程学习Phaser实例源码

Java线程学习Phaser实例源码。Phaser是一个灵活的线程同步工具,他包含了CyclicBarrier和CountDownLatch的相关功能。我们来看如何用Phaser替代CountDownLatch。对于CountDownLatch而言,有2个重要的方法,一个是await()方法,可以使线程进入等待状态,在Phaser中,与之对应的方法是awaitAdvance(int n)。CountDownLatch中另一个重要的方法是countDown(),使计数器减一,当计数器为0时所有等待的线程开始执行,在Phaser中,与之对应的方法是arrive()。下面的例子创建了3个线程,打印一[......]

Read more

Java线程之ThreadLocal学习实例教程

Java线程之ThreadLocal学习实例教程。ThreadLocal作用是实现一个线程独立的全局变量。使用全局变量的好处是,程序的任何地方都可以使用它,而无需进行参数传递。在单线程环境下,将类的属性和方法定义为static,即可实现全局变量。

在多线程环境下,普通的全局变量是线程间共享的,一个线程修改了全局变量的值,另一个线程可以看到这个修改。

使用ThreadLocal实现全局变量,即保留了随处可用这一优点,又能做到线程间独立,即线程A拥有线程A的全局变量,线程B拥有线程B的全局变量,互不影响。

换句话说,只有当你需要在多线程环境下使用全局变量的时候,才会用到Threa[......]

Read more

Java线程应用学习之Exchanger

Java线程应用学习之Exchanger实例源码介绍。Exchanger可以在两个线程之间交换数据,只能是2个线程,他不支持更多的线程之间互换数据。当线程A调用Exchange对象的exchange()方法后,他会陷入阻塞状态,直到线程B也调用了exchange()方法,然后以线程安全的方式交换数据,之后线程A和B继续运行。

public class ThreadLocalTest {

public static void main(String[] args) {
Exchanger<List<Integer>> exchanger = new Exch[......]

Read more

系统的基本特征通用技术第三章第二节教案下载

系统的基本特征分析

系统的基本特征 通用技术教案下载

教学目标:

1、知识与技能:理解系统的基本特性。

2、过程与方法:通过分析系统各组成部分之间的关系,掌握系统分析方法。

3、情感、态度和价值观:学会用系统的眼光看待问题,分析问题。

重点与难点:系统的基本特性是重点。 领会系统思路是难点。

教学过程: 

新课引入:

要用系统分析的方法来解决问题,就必须掌握系统的基本特性。通过理解基本特性构成系统的基本思想。

 新课教学: 

一、系统的基本特性

(一)系统具有整体性

1,以波轮式洗衣机为例。洗衣机由多个机构,上百个零件构[......]

Read more

Java线程ThreadLocal功能实例介绍

Java线程ThreadLocal功能实例介绍。ThreadLocal的功能是实现一个线程独立的全局变量。使用全局变量的好处是,程序的任何地方都可以使用它,而无需进行参数传递。在单线程环境下,将类的属性和方法定义为static,即可实现全局变量。但在多线程环境下,普通的全局变量是线程间共享的,一个线程修改了全局变量的值,另一个线程可以看到这个修改。使用ThreadLocal实现全局变量,即保留了随处可用这一优点,又能做到线程间独立,即线程A拥有线程A的全局变量,线程B拥有线程B的全局变量,互不影响。换句话说,只有当你需要在多线程环境下使用全局变量的时候,才会用到ThreadLocal,其他情况[......]

Read more