- 浏览: 478034 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (449)
- java细节 (186)
- javascript (6)
- tomcat (2)
- java基础 (17)
- extjs (1)
- java 开源 (17)
- java-bug (5)
- 电脑软件 (16)
- oracle-dba (8)
- oracle (6)
- java 精神 (17)
- SSH (6)
- 常用开源 (29)
- Mysql (22)
- 电脑学习 (8)
- jsp (12)
- html5 (6)
- hadoop (3)
- webos (2)
- web前端开发 (7)
- java实践 (2)
- 其它 (19)
- python (4)
- c++ (1)
- linux (2)
- css3+h5 (9)
- bootstrap (12)
- ps (1)
- vue (5)
- android (3)
最新评论
-
springdata_springmvc:
java inputstream demo教程源代码下载:ht ...
文件的读写 -- java FileInputStream -
hukaimiao:
[/c佛挡[size=x-small][color=darkr ...
文件的读写 -- java FileInputStream -
wwm4851186:
可惜这是中国
10大技能 让你坐享10万美元薪酬 -
zhubo357087527:
楼主,这样写可以吗?用“Process proc = Runt ...
在java中如何调用linux的ctrl+c指令?
package jdk7;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class Jdk7Test {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
System.out.println(switchString("Monday"));
//抛出异常
catchTest();
}
//Switch语句支持string类型
public static String switchString(String dayOfWeekArg){
String typeOfDay;
switch (dayOfWeekArg) {
case "Monday":
typeOfDay = "Start of work week";
break;
case "Tuesday":
case "Wednesday":
case "Thursday":
typeOfDay = "Midweek";
break;
case "Friday":
typeOfDay = "End of work week";
break;
case "Saturday":
case "Sunday":
typeOfDay = "Weekend";
break;
default:
throw new IllegalArgumentException("Invalid day of the week: " + dayOfWeekArg);
}
return typeOfDay;
}
//1.4 catch
public static void catchTest( ) throws Exception {
String zipFileName = "";
try {
System.out.println("error");
if(true){
throw new IOException();
}else{
throw new SQLException();
}
} catch (IOException|SQLException ex) {
throw ex;
}
}
//1.6 泛型实例的创建可以通过类型推断来简化 可以去掉后面new部分的泛型类型,只用<>就可以了
public static void listTest( ) throws Exception {
List<String> list = new ArrayList<>();
list.add("A");
}
}
fork-join
package jdk7;
import java.util.Date;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.Future;
import java.util.concurrent.RecursiveTask;
//最大的增强,充分利用多核特性,将大问题分解成各个子问题,
//由多个cpu可以同时解决多个子问题,最后合并结果,继承RecursiveTask,
//实现compute方法,然后调用fork计算,最后用join合并结果
//算法很简单,在100个数以内的我们直接迭代计算和值。否则采用Fork/Join框架分治计算。
public class PlusPlus extends RecursiveTask<Long>{
private static final int THRESHOLE=100;
private int start;
private int end;
public PlusPlus(int start,int end){
this.start=start;
this.end=end;
}
@Override
protected Long compute() {
// TODO Auto-generated method stub
Long sum=0l;
if(end-start<THRESHOLE){
for(int i=start;i<=end;i++){
sum+=i;
}
}else{
int middle=(start+end)/2;
PlusPlus left=new PlusPlus(start, middle);
PlusPlus right=new PlusPlus(middle+1, end);
left.fork();
right.fork();
sum=left.join()+right.join();
}
return sum;
}
public Long sumall(){
long sum=0;
for(int i=start;i<=end;i++){
sum = sum+ i;
}
return sum;
}
public static void main(String args[]) throws InterruptedException, ExecutionException{
long t1 = new Date().getTime();
ForkJoinPool pool=new ForkJoinPool();
Future<Long> result=pool.submit(new PlusPlus(1, 800000));
long t2 = new Date().getTime();
long sum = new PlusPlus(1, 800000).sumall();
long t3 = new Date().getTime();
System.out.println(result.get()+"耗时:"+(t2-t1));
System.out.println(sum+"耗时:"+(t3-t2));
// System.err.println(10001*5000);
}
}
320000400000耗时:2
320000400000耗时:3
注:
使用fork 有个局限 800000 变成 1000000时候 出现 OutOfMemory
而后面一种方式 就不会出现这个错误
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class Jdk7Test {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
System.out.println(switchString("Monday"));
//抛出异常
catchTest();
}
//Switch语句支持string类型
public static String switchString(String dayOfWeekArg){
String typeOfDay;
switch (dayOfWeekArg) {
case "Monday":
typeOfDay = "Start of work week";
break;
case "Tuesday":
case "Wednesday":
case "Thursday":
typeOfDay = "Midweek";
break;
case "Friday":
typeOfDay = "End of work week";
break;
case "Saturday":
case "Sunday":
typeOfDay = "Weekend";
break;
default:
throw new IllegalArgumentException("Invalid day of the week: " + dayOfWeekArg);
}
return typeOfDay;
}
//1.4 catch
public static void catchTest( ) throws Exception {
String zipFileName = "";
try {
System.out.println("error");
if(true){
throw new IOException();
}else{
throw new SQLException();
}
} catch (IOException|SQLException ex) {
throw ex;
}
}
//1.6 泛型实例的创建可以通过类型推断来简化 可以去掉后面new部分的泛型类型,只用<>就可以了
public static void listTest( ) throws Exception {
List<String> list = new ArrayList<>();
list.add("A");
}
}
fork-join
package jdk7;
import java.util.Date;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.Future;
import java.util.concurrent.RecursiveTask;
//最大的增强,充分利用多核特性,将大问题分解成各个子问题,
//由多个cpu可以同时解决多个子问题,最后合并结果,继承RecursiveTask,
//实现compute方法,然后调用fork计算,最后用join合并结果
//算法很简单,在100个数以内的我们直接迭代计算和值。否则采用Fork/Join框架分治计算。
public class PlusPlus extends RecursiveTask<Long>{
private static final int THRESHOLE=100;
private int start;
private int end;
public PlusPlus(int start,int end){
this.start=start;
this.end=end;
}
@Override
protected Long compute() {
// TODO Auto-generated method stub
Long sum=0l;
if(end-start<THRESHOLE){
for(int i=start;i<=end;i++){
sum+=i;
}
}else{
int middle=(start+end)/2;
PlusPlus left=new PlusPlus(start, middle);
PlusPlus right=new PlusPlus(middle+1, end);
left.fork();
right.fork();
sum=left.join()+right.join();
}
return sum;
}
public Long sumall(){
long sum=0;
for(int i=start;i<=end;i++){
sum = sum+ i;
}
return sum;
}
public static void main(String args[]) throws InterruptedException, ExecutionException{
long t1 = new Date().getTime();
ForkJoinPool pool=new ForkJoinPool();
Future<Long> result=pool.submit(new PlusPlus(1, 800000));
long t2 = new Date().getTime();
long sum = new PlusPlus(1, 800000).sumall();
long t3 = new Date().getTime();
System.out.println(result.get()+"耗时:"+(t2-t1));
System.out.println(sum+"耗时:"+(t3-t2));
// System.err.println(10001*5000);
}
}
320000400000耗时:2
320000400000耗时:3
注:
使用fork 有个局限 800000 变成 1000000时候 出现 OutOfMemory
而后面一种方式 就不会出现这个错误
发表评论
-
idea 设置自动编译
2023-06-13 09:39 353https://www.cnblogs.com/bxzmd/p ... -
eclipse 下载的地方
2023-05-31 00:43 121参考 https://baijiahao.baidu.com/ ... -
eclipse导入 idea
2023-03-19 21:27 210转: https://blog.csdn.net/qq_526 ... -
@DataSource切换数据库失效
2022-08-08 11:31 567在实现类中 再次注入即可 public class Face ... -
jar下载地址
2022-02-11 23:34 2481、进入官网:https://sourceforge.net/ ... -
java 测试两个月前的今天-改为保留60天-bug
2021-08-18 14:03 556比如今天是8.31 两个月前是 6.30。 但是存在问题,比如 ... -
idea 常见配置
2021-06-07 17:11 2551 sst 8.37 checkstyle 版本 2 设置c ... -
linux定时清理日志
2020-09-21 13:36 441clearlog.sh #!/bin/bash # 清理30 ... -
前端中文传到后台乱码
2020-09-10 23:35 588info = new String(info.getBytes ... -
linux 开机自启动
2020-09-07 10:20 376run.sh 文件内容如下: #!/bin/bash cd ... -
nodejs 和npm对应关系
2020-08-07 09:45 2097https://nodejs.org/en/download/ ... -
mybatis 插入库 乱码
2020-05-10 12:25 320jdbc:mysql://127.0.0.1:3306/tes ... -
Transactional 不生效(转)
2020-04-16 12:33 317@Transactional 默认是当方法抛出RuntimeE ... -
全栈开发
2020-03-11 21:51 333全栈开发没有明确的定义,但应该指的就是前端+后端+数据库。所以 ... -
rocketmq-一个消费组对应一个订阅关系
2019-10-23 10:39 778源码分析RocketMQ同一个消费组设置不同tag,消息订阅失 ... -
rocketmq 标签过滤的方式
2019-10-21 09:16 418https://www.kunzhao.org/blog/20 ... -
json 转 对象
2019-09-30 16:48 343单个 XX a = JsonUtils.fromJson(js ... -
springboot @RequestBody 和 @RequestParam
2019-09-09 23:08 1247一 在路径中 在PathVariable后面接入“uid”就可 ... -
java.sql.SQLException: Parameter index out of range (1 > number of parameters, w
2019-08-28 22:42 535完整错误: java.sql.SQLException: Pa ... -
List 简洁赋值
2019-08-14 10:35 532List<String> name = new A ...
相关推荐
jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-...
jdk-8u131-windows-x64jdk-8u131-windows-x64jdk-8u131-windows-x64jdk-8u131-windows-x64jdk-8u131-windows-x64jdk-8u131-windows-x64jdk-8u131-windows-x64jdk-8u131-windows-x64jdk-8u131-windows-x64jdk-8u131-...
jdk-8u311-windows-x64.exe jdk-8u311-windows-x64.exe.zip jdk-8u311-windows-x64.exe jdk-8u311-windows-x64.exe.zip jdk-8u311-windows-x64.exe jdk-8u311-windows-x64.exe.zip jdk-8u311-windows-x64.exe jdk-8u...
jdk-6u39-windows-i586,jdk-6u39-windows-i586,jdk-6u39-windows-i586,jdk-6u39-windows-i586,jdk-6u39-windows-i586,jdk-6u39-windows-i586,jdk-6u39-windows-i586,jdk-6u39-windows-i586,jdk-6u39-windows...
jdk-6u21-windows-x64 jdk-6u21-windows-x64 jdk-6u21-windows-x64 jdk-6u21-windows-x64 jdk-6u21-windows-x64 jdk-6u21-windows-x64 jdk-6u21-windows-x64 jdk-6u21-windows-x64 jdk-6u21-windows-x64 jdk-6u21-...
(1)jdk-8u301-linux-aarch64.rpm (2)jdk-8u301-linux-aarch64.tar.gz (3)jdk-8u301-linux-arm32-vfp-hflt.tar.gz (4)jdk-8u301-linux-i586.rpm (5)jdk-8u301-linux-i586.tar.gz (6)jdk-8u301-linux-x64....
jdk-7-windows-x32 32为 JDK 7
jdk-8u131-windows-i586jdk-8u131-windows-i586jdk-8u131-windows-i586jdk-8u131-windows-i586jdk-8u131-windows-i586jdk-8u131-windows-i586jdk-8u131-windows-i586jdk-8u131-windows-i586jdk-8u131-windows-i586...
java-jdk1.8-8u361-all-jdk-win-linux 该压缩包中包含jdk1.8-8u361下windows版本和linux版本,其包含快速安装包和对应的jdk压缩包版本,具体内容如下: jdk-8u361-linux-aarch64.rpm jdk-8u361-linux-i586.rpm jdk-8...
jdk-7u79-windows-i586.exe JDK7 稳定版 源官方下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
jdk1.7 64位官方正式版 jdk-7u79-linux-x64.tar.gz
jdk-7u25-windows-x64& jdk-7u25-windows-i586.exe
jdk1.7 64位 jdk-7u67-linux-x64.tar.gz、jdk1.7 64位 jdk-7u67-linux-x64.tar.gz、jdk1.7 64位 jdk-7u67-linux-x64.tar.gz、
三个版本的java jdk分别是:jdk-8u172-windows-x64.exe、jdk-8u251-windows-x64.exe、jdk-14.0.1_windows-x64_bin.exe
jdk-7u25-windows-i586.zip
jdk-7u67-linux-x64.tar包现在 linux jdk下载
开发工具 jdk-8u121-windows-i586开发工具 jdk-8u121-windows-i586开发工具 jdk-8u121-windows-i586开发工具 jdk-8u121-windows-i586开发工具 jdk-8u121-windows-i586开发工具 jdk-8u121-windows-i586开发工具 jdk-8...
jdk7 jdk-7u80-linux-x64 网盘下载
jdk-7-windows-i586 jdk-7-windows-i586 jdk-7-windows-i586
JDK版本:JDK-7u80-windows-x64版本,即为jdk1.7,此版本会自动安装JRE(Java的一个运行环境).