Codewars里的 5kyu Kata。
题目说明:
This problem takes its name by arguably the most important event in the life of the ancient historian Josephus: according to his tale, he and his 40 soldiers were trapped in a cave by the Romans during a siege.
Refusing to surrender to the enemy, they instead opted for mass suicide, with a twist: they formed a circle and proceeded to kill one man every three, until one last man was left (and that it was supposed to kill himself to end the act) .
Well, Josephus and another man were the last two and, as we now know every detail of the story, you may have correctly guessed that they didn't exactly follow through the original idea.
You are now to create a function that returns a Josephus permutation, taking as parameters the initial array/list of items to be permuted as if they were in a circle and counted out every k places until none remained.
Tips and notes: it helps to start counting from 1 up to n, instead of the usual range 0..n-1; k will always be >=1.
For example, with n=7 and k=3 josephus(7,3)
should act this way.
[1,2,3,4,5,6,7] - initial sequence
[1,2,4,5,6,7] => 3 is counted out and goes into the result [3]
[1,2,4,5,7] => 6 is counted out and goes into the result [3,6]
[1,4,5,7] => 2 is counted out and goes into the result [3,6,2]
[1,4,5] => 7 is counted out and goes into the result [3,6,2,7]
[1,4] => 5 is counted out and goes into the result [3,6,2,7,5]
[4] => 1 is counted out and goes into the result [3,6,2,7,5,1]
[] => 4 is counted out and goes into the result [3,6,2,7,5,1,4]
So our final result is:
josephus([1,2,3,4,5,6,7],3)==[3,6,2,7,5,1,4]
For more info, browse the Josephus Permutation page on wikipedia; related kata: Josephus Survivor.
解题代码:
import java.util.List;
import java.util.ArrayList;
public class Josephus {
public static List josephusPermutation(final List items, final int k) {
List res = new ArrayList();
int count = items.size();
int i = 0;
while(count > 0){
i = (i + k - 1)%items.size();
res.add(items.remove(i));
count--;
}
return res;
}
}
Test Cases:
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
import java.util.Random;
import org.junit.Test;
public class JosephusTest {
private static int NUM_RANDOM_TESTS = 40;
private static int MAX_ITEMS = 50;
private static int MAX_ITEM_VALUE = 200;
private static int MAX_K = 20;
@Test
public void test1() {
josephusTest(new Object[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, 1, new Object[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
}
@Test
public void test2() {
josephusTest(new Object[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, 2, new Object[] { 2, 4, 6, 8, 10, 3, 7, 1, 9, 5 });
}
@Test
public void test3() {
josephusTest(new Object[] { "C", "o", "d", "e", "W", "a", "r", "s" }, 4,
new Object[] { "e", "s", "W", "o", "C", "d", "r", "a" });
}
@Test
public void test4() {
josephusTest(new Object[] { 1, 2, 3, 4, 5, 6, 7 }, 3, new Object[] { 3, 6, 2, 7, 5, 1, 4 });
}
@Test
public void test5() {
josephusTest(new Object[] {}, 3, new Object[] {});
}
@Test
public void test6() {
josephusTest(new Object[] { "C", 0, "d", 3, "W", 4, "r", 5 }, 4,
new Object[] { 3, 5, "W", 0, "C", "d", "r", 4 });
}
@Test
public void test7() {
josephusTest(
new Object[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50 },
11,
new Object[] { 11, 22, 33, 44, 5, 17, 29, 41, 3, 16, 30, 43, 7, 21, 36, 50, 15, 32, 48, 14, 34, 1, 20,
39, 9, 28, 2, 25, 47, 24, 49, 27, 8, 38, 19, 6, 42, 35, 26, 23, 31, 40, 4, 18, 12, 13, 46, 37,
45, 10 });
}
@Test
public void test8() {
josephusTest(new Object[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, 40,
new Object[] { 10, 7, 8, 13, 5, 4, 12, 11, 3, 15, 14, 9, 1, 6, 2 });
}
@Test
public void test9() {
josephusTest(new Object[] { 1 }, 3, new Object[] { 1 });
}
@Test
public void test10() {
josephusTest(new Object[] { true, false, true, false, true, false, true, false, true }, 9,
new Object[] { true, true, true, false, false, true, false, true, false });
}
@Test
public void randomTest() {
Random random = new Random();
for (int i = 0; i < NUM_RANDOM_TESTS; i++) {
List items = new ArrayList();
for (int j = 0; j < random.nextInt(MAX_ITEMS); j++) {
items.add(random.nextInt(MAX_ITEM_VALUE));
}
int k = random.nextInt(MAX_K - 1) + 1;
assertThat(Josephus.josephusPermutation(new ArrayList(items), k),
is(solution(new ArrayList(items), k)));
}
}
private void josephusTest(final Object[] items, final int k, final Object[] result) {
assertThat(Josephus.josephusPermutation(new ArrayList(Arrays.asList(items)), k),
is(Arrays.asList(result)));
}
private List solution(final List items, final int k) {
List permutation = new ArrayList();
int position = 0;
while (items.size() > 0) {
position = (position + k - 1) % items.size();
permutation.add(items.remove((int) position));
}
return permutation;
}
}
个人总结:
import java.util.List;
import java.util.LinkedList;
import java.util.ArrayList;
import java.util.Iterator;
public class Josephus {
public static List josephusPermutation(List items, int k) {
List permutation = new ArrayList(items.size());
CircularIterator iterator = new CircularIterator<>(new LinkedList(items));
while (iterator.hasNext()) {
iterator.skip(k - 1);
permutation.add(iterator.next());
iterator.remove();
}
return permutation;
}
static class CircularIterator implements Iterator {
private final List list;
private Iterator iterator;
CircularIterator(List list) {
this.list = list;
this.iterator = list.iterator();
}
@Override
public boolean hasNext() {
return !list.isEmpty();
}
@Override
public T next() {
if (!iterator.hasNext()) {
iterator = list.iterator();
}
return iterator.next();
}
public void skip(int n) {
while (--n >= 0 && hasNext()) {
next();
}
}
@Override
public void remove() {
iterator.remove();
}
}
}
import java.util.ArrayList;
import java.util.List;
public class Josephus {
public static List josephusPermutation(final List items, final int k) {
JosephusList josephus = JosephusList.create(items);
List result = new ArrayList<>();
while (!josephus.isEmpty()) {
josephus.movePosition(k);
result.add(josephus.executeCurrent());
}
return result;
}
}
class JosephusList {
private class JosephusNode {
T value;
JosephusNode next;
JosephusNode previous;
JosephusNode(T value) {
this.value = value;
next = null;
previous = null;
}
}
private JosephusNode start;
private JosephusNode end;
private int size;
private JosephusNode currentPosition;
private JosephusList() {
this.start = null;
this.end = null;
}
private void addNode(T value) {
addNode(new JosephusNode<>(value));
}
private void addNode(JosephusNode node) {
if (start == null) {
start = node;
end = node;
start.next = start;
start.previous = start;
} else {
end.next = node;
node.next = start;
node.previous = end;
start.previous = node;
end = node;
}
size++;
}
public void movePosition(int numberOfMoves) {
for (int i = 0; i < numberOfMoves; i++) {
currentPosition = currentPosition.next;
}
}
public T executeCurrent() {
if (isEmpty())
throw new IllegalArgumentException();
JosephusNode deadNode = currentPosition;
deadNode.previous.next = deadNode.next;
deadNode.next.previous = deadNode.previous;
currentPosition = deadNode.previous;
size--;
return deadNode.value;
}
public boolean isEmpty() {
return size <= 0;
}
public static JosephusList create(List values) {
JosephusList josephusList = new JosephusList<>();
for (int i = 0; i < values.size(); i++) {
josephusList.addNode(values.get(i));
}
josephusList.currentPosition = josephusList.end;
return josephusList;
}
}
import java.util.List;
import java.util.ArrayList;
public class Josephus {
public static List josephusPermutation(final List items, final int k) {
List result = new ArrayList<>();
int i = 0;
int count = 1;
int size = items.size();
while (result.size() < size) {
if (count % k == 0) {
result.add(items.get(i));
items.remove(i);
if (i >= items.size())
i = 0;
} else
i = i < items.size() - 1 ? i + 1 : 0;
count++;
}
return result;
}
}
你可能感兴趣的:(数组,Java,数学,Codewars)
java实体数据校验validation
秋风未动蝉已先觉
java java
javax.validationvalidation-api1.1.0.Finalorg.hibernatehibernate-validator5.4.1.Final//实体publicclassEntity{@NotNull(message="name字段值不能为空")privateStringname;@Max(value=20,message="address最大长度为20")privat
React Native
svygh123
问题解决过程 编程 js react native react.js javascript
ReactNative是一个用于构建原生移动应用的框架,它使用JavaScript和React(一个用于构建用户界面的JavaScript库)来开发iOS和Android平台的应用程序。ReactNative由Facebook开发并维护,并且是开源的。特点跨平台开发:ReactNative允许开发者使用相同的代码库为多个平台(如iOS和Android)编写应用,极大地提高了开发效率。热重载:开发者
Java函数式接口四部曲之Consumer
sundawei2016
java 前端 开发语言
Consumer是一个函数式接口,位于java.util.function包中。它表示一个接受单个输入参数并且不返回任何结果的操作。Consumer通常用于需要对输入参数执行某些操作但不产生返回值的场景。Consumer接口定义了一个抽象方法:accept(Tt):接受一个类型为T的参数,并对其执行操作。Consumerdisplay=System.out::println;display.acc
(十六)Java-File
Kyrie_Li
Java体系 java 开发语言
File类是Java中最基础的文件处理类,它用于表示文件和目录(文件路径)。File类不能直接进行读写操作,它仅用于描述文件或目录的元数据,比如文件名、路径、大小等。一、File类的构造方法1.通过提供文件的路径字符串来创建一个File对象。路径可以是绝对路径也可以是相对路径。Filefile=newFile("D:\\test\\555.txt");2.通过父目录路径和子文件/目录路径来创建Fi
(六)Java-BigDecimal
Kyrie_Li
Java体系 java 开发语言
一、概述BigDecimal类用于高精度计算,特别适用于需要进行精确浮点数运算的场合,例如货币计算、金融应用或科学计算。二、优势由于double和float类型是浮点数类型,它们在表示一些十进制数时会出现精度丢失问题,而BigDecimal则可以避免这些问题,提供任意精度的数值表示。三、特点1.任意精度:BigDecimal的精度仅受限于计算机的内存,而不像float和double有固定的精度限制
回溯-全排列
Vacant Seat
算法 java 回溯
46.全排列给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案输入:数组输出:二维列表思路:等待二刷classSolution{List>result=newArrayListpath=newLinkedList>permute(int[]nums){intlen=nums.length;used=newboolean[len];if(len==0){return
MyBatis Plus 在 Java 项目中的高效使用
随风九天
匠心数据库 java spring java mybatis MyBatis Plus
1.前言1.1MyBatisPlus简介MyBatisPlus是一个MyBatis的增强工具,旨在简化开发人员在数据库操作上的工作量。它提供了丰富的功能,如自动化的CRUD操作、条件构造器、分页查询等,极大地提高了开发效率。1.2为什么选择MyBatisPlus简化代码:自动生成基础的CRUD方法,减少重复代码。提高效率:内置多种插件和工具,提升开发速度。易于维护:代码结构清晰,便于后续维护和扩展
java--数据校验Validator
郑*杰
java 开发语言 spring
一、基于注解进行数据校验1、配置依赖java--常用依赖配置_郑*杰的博客-CSDN博客2、创建一个配置类packagecom.ruqi.aditainoal;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.ComponentScan;importorg.s
Apipost一站式API工具评测:整合Postman+Swagger+JMeter三大功能,打造全流程开发解决方案
作为一名Java开发者,始终追求开发过程的高效性。使用IntelliJIDEA编写代码只是开始。一般来说,代码完成后,我们会切换到Postman进行API调试。在确保API表现符合预期后,我们会使用Swagger为前端团队生成文档。最后,再使用JMeter进行性能和负载测试,以确保API工作流顺畅且自动化。Apipost=Postman+Swagger+JMeter然而,这种多工具的方法存在诸多挑
VScode使用小技巧
前端CV攻城狮
vscode javascript 前端
代码片段快捷键设置设置位置:文件—首选项—用户代码片段----搜javaScript,进入JavaScript.json,自定义快捷键(setting→ConfigureUserSnippets→JavaScripts.json)例:log快速输入console.log()"Printtoconsole":{"prefix":"log","body":["console.log('$1')"],"
unity3d————Mathf.Lerp() 函数详解
无敌最俊朗@
Unity四部曲之基础篇 unity c# 学习 开发语言 游戏引擎
Mathf.Lerp()是Unity中的一个非常有用的数学函数。它的名字来自于“LinearInterpolation”的缩写,意思是“线性插值”。想象一下,你有两个点,一个点叫A,另一个点叫B。现在,你想在A和B之间找到一个新的点,这个点不是随便找的,而是根据一定的比例来确定的。这个比例我们称之为t,t的范围是从0到1。当t=0时,新点就是A点。当t=1时,新点就是B点。当t在0和1之间时,新点
2024金三银四react面试葵花宝典,欲练此功。。。
为了WLB努力
react.js 面试 前端
程序员的金三银四求职宝典1.用类组件和函数组件分别编写react的不同生命周期在React中,类组件和函数组件的生命周期函数有所不同。以下是分别使用类组件和函数组件编写的挂载、更新和卸载阶段的生命周期函数示例:类组件:importReact,{Component}from'react';classLifecycleComponentextendsComponent{constructor(prop
leetcode 贪心算法
gufly-
leetcode 贪心算法 算法
刷题记录以局部最优推出整体最优,且想不到反例,则可以尝试贪心算法455.分发饼干从后向前遍历孩子数组,用大饼干满足胃口大,并统计满足小孩数量classSolution(object):deffindContentChildren(self,g,s):g.sort()s.sort()res=0ind=len(s)-1foriinrange(len(g)-1,-1,-1):ifind>=0ands[i
python贪心算法几个经典例子_贪心算法经典例子
weixin_39637979
一、定义什么是贪心算法呢?所谓贪心算法是指,在对问题求解时,总是做出在当前看来最好的选择。也就是说,不从整体最优解出发来考虑,它所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题都能产生整体最优解或整体最优解的近似解。贪心算法的基本思路如下:1.建立数学模型来描述问题。2.把求解的问题分成若干个子问题。3.对每个子问题求解,得到每个子问题的局
python贪心算法几个经典例子_贪心算法及几个经典例子
weixin_39786850
一、定义什么是贪心算法呢?所谓贪心算法是指,在对问题求解时,总是做出在当前看来最好的选择。也就是说,不从整体最优解出发来考虑,它所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题都能产生整体最优解或整体最优解的近似解。贪心算法的基本思路如下:1.建立数学模型来描述问题。2.把求解的问题分成若干个子问题。3.对每个子问题求解,得到每个子问题的局
Java基于redis实现进度条
冰糖码奇朵
java redis
一.问题背景为了提升用户体验,开发中有很多场景需要用到进度条,比如导入、导出、大规模更新操作等。进度条在许多大型系统中使用频率较高,反复编写既麻烦又不利于维护,因此基于Redis抽成公共方法供不同功能调用。二.实现方案1.引入依赖如果系统已集成Redis,直接跳到第5步,进度条实现。org.springframework.bootspring-boot-starter-data-redis2.配置
数据监控工具Mixpanel的简易使用教程
alankuo
大数据
Mixpanel的使用教程如下:注册与准备创建账号:访问Mixpanel官方网站,按照提示填写相关信息创建账号。登录后,在项目设置中可以获取项目密钥。了解基本概念:明确事件、用户属性等基本概念。事件是用户在应用中的操作,如点击按钮、完成注册等;用户属性是描述用户特征的信息,像年龄、城市、会员等级等。集成SDKWeb应用:在HTML文件中引入MixpanelJavaScriptSDK。在页面的标签内
如何实现集群中的session共享存储?思维导图 代码示例(java 架构)
用心去追梦
java 架构 开发语言
集群中Session共享存储的实现在分布式系统或集群环境中,确保用户会话(Session)能够在所有节点之间共享是一个关键问题。为了实现这一点,可以采用多种策略和技术。以下是关于如何在Java架构中实现集群中的Session共享存储的主要方面:1.使用集中式存储服务Memcached:轻量级、高性能的内存缓存系统,适用于存储短期的session数据。Redis:功能更强大的键值存储数据库,不仅支持
Java常用集合与映射的线程安全问题深度解析
yang789022
编程学习 java 安全 python
Java常用集合与映射的线程安全问题深度解析一、线程安全基础认知二、典型非线程安全集合问题分析1.ArrayList的并发陷阱2.HashMap的并发灾难3.HashSet的隐藏风险三、线程安全解决方案对比1.同步包装方案2.传统线程安全集合3.现代并发容器(java.util.concurrent包)3.1CopyOnWriteArrayList3.2ConcurrentHashMap3.3Co
java 连接oracle 字符集_Java连接Oracle数据库,编码格式转换
东京客
java 连接oracle 字符集
学习东西不忘记下笔记:dbhelper类,各种数据库都合适。publicclassDBHelper{//mysql数据库//publicstaticfinalStringurl="jdbc:mysql://127.0.0.1:3306/test";//publicstaticfinalStringname="com.mysql.jdbc.Driver";//publicstaticfinalStr
java 读取resource文件夹文件_Java 获取Resource目录下的文件解决办法
鬼斧神工119
java 读取resource文件夹文件
该楼层疑似违规已被系统折叠隐藏此楼查看此楼Java获取Resource目录下的文件有两种方式:Java代码中的类,要获取Resource资源文件目录下文件绝对路径寻址注意这个/址的是根目录,用绝对路径,可能会出现的问题是,你的程序在windows上可以用,但是在linux不能用,原因在于,你这根目录在windows环境址你的src目录放到linux环境,就可能执行你linux的根目录了,会导致fi
jvm堆外内存(直接内存)
不坠青云之志
Java Jvm direct memory
堆外内存(直接内存)堆外内存,又被称为直接内存。这部分内存不是由jvm管理和回收的。需要我们手动的回收。堆内内存是属于jvm的,由jvm进行分配和管理,属于"用户态",而推外内存是由操作系统管理的,属于"内核态"在jdk1.4中新加入了NIO类,他可以调用native函数库直接分配堆外内存,然后通过java堆中的DirectByteBuffer对象来指向这块内存,进行内存分配等工作。可以这样申请堆
JVM内存深度解析:堆内与堆外内存的监控与诊断
猿泰山
Java核心技术 jvm
JVM内存深度解析:堆内与堆外内存的监控与诊断一、引言在Java应用中,JVM(JavaVirtualMachine)的内存管理至关重要。其中,堆内内存和堆外内存是两个核心概念。堆内内存主要存储Java对象实例,而堆外内存则与Java的NIO(NewI/O)库密切相关,主要用于存储不受Java堆大小限制的直接缓冲区。本文将深入探讨如何监控和诊断这两种类型的内存使用。二、堆内内存监控与诊断JVM参数
【从零开始学java】第1章,基础知识入门,小白零基础可看,笔记整理
莉莉鸟
java 学习
java基础11注释标志符关键字注释注释并不会被执行,是写给人类看的,书写注释是一个很好的习惯平时写代码一定要注意规范单行注释//多行注释/*注释*/文档注释/**注释*/2标识符关键字abstract:用于声明抽象类或抽象方法。assert:用于调试时进行断言。boolean:表示布尔类型(true或false)。break:跳出当前循环或switch语句。byte:表示字节数据类型。case:
查看 jvm 堆外内存大小
Horizon_Zy
JVM相关 java 开发语言 后端
java.nio.Bits#reservedMemor该值为堆外内存占用大小。可以通过arthasattach后用ognl进行输出。ognl@java.nio.Bits@reservedMemory.value
最新网络安全-跨站脚本攻击(XSS)的原理、攻击及防御_xsstrike原理
2401_84239830
程序员 web安全 xss 安全
XSS的类型反射型XSS/不持久型XSS存储型XSS/持久型XSS基于DOM的XSS常用Payload与工具XSS扫描工具Payloadsscript标签类结合js的html标签伪协议绕过危害防御简介跨站脚本攻击(全称CrossSiteScripting,为和CSS(层叠样式表)区分,简称为XSS)是指恶意攻击者在Web页面中插入恶意javascript代码(也可能包含html代码),当用户浏览网
网络安全知识:网络安全网格架构
网络安全(king)
网络工程师 网络安全 黑客 web安全 架构 安全
在数字化转型的主导下,大多数组织利用多云或混合环境,包括本地基础设施、云服务和应用程序以及第三方实体,以及在网络中运行的用户和设备身份。在这种情况下,保护组织资产免受威胁涉及实现一个统一的框架,该框架根据组织内每个实体的上下文提供安全性。此外,强化组合环境需要可互操作的跨域功能,以增强协作,这样就不需要多个解决方案来实现相同的功能。在这种情况下,网络安全网格架构(CSMA)提供了一种可扩展的方法来
如何使用Java和ElasticSearch实现全文搜索
微赚淘客系统开发者@聚娃科技
java elasticsearch 开发语言
如何使用Java和ElasticSearch实现全文搜索大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们来探讨如何使用Java和ElasticSearch实现全文搜索。ElasticSearch是一个分布式搜索和分析引擎,能够处理大规模数据并提供实时搜索功能。在本文中,我们将介绍如何使用Java客户端与ElasticSearch进行交互,实现简单的全文搜索功能
基于大数据架构的就业岗位推荐系统的设计与实现【java或python】—计算机毕业设计源码+LW文档
qq_375279829
大数据 架构 python 课程设计 算法
摘要随着互联网技术的迅猛发展和大数据时代的到来,就业市场日益复杂多变,求职者与招聘方之间的信息不对称问题愈发突出。为解决这一难题,本文设计并实现了一个基于大数据架构的就业岗位推荐系统。该系统通过收集、整合并分析大量求职者简历信息、企业招聘信息以及市场动态数据,运用先进的机器学习算法,为求职者提供个性化的岗位推荐服务,同时帮助企业快速定位到合适的候选人。本文将从系统设计的背景与意义、技术基础、需求分
Java 基础核心总结
仅此而已丶
Java基础教程系列 开发语言 java
目录前言介绍1、基本语法2、面向对象编程3、异常处理4、集合框架5、IO流6、多线程专栏地址前言Java是一种广泛使用的程序设计语言,具有跨平台、面向对象、安全性高、灵活性强等特点,广泛应用于企业级应用程序和移动应用程序等领域。在学习Java语言时,需要掌握一些基础核心知识,本文将为您总结Java基础核心知识点,以便于您的学习和参考。介绍Java基础核心知识点包括基本语法、面向对象编程、异常处理、
异常的核心类Throwable
无量
java 源码 异常处理 exception
java异常的核心是Throwable,其他的如Error和Exception都是继承的这个类 里面有个核心参数是detailMessage,记录异常信息,getMessage核心方法,获取这个参数的值,我们可以自己定义自己的异常类,去继承这个Exception就可以了,方法基本上,用父类的构造方法就OK,所以这么看异常是不是很easy
package com.natsu;
mongoDB 游标(cursor) 实现分页 迭代
开窍的石头
mongodb
上篇中我们讲了mongoDB 中的查询函数,现在我们讲mongo中如何做分页查询
如何声明一个游标
var mycursor = db.user.find({_id:{$lte:5}});
迭代显示游标数
MySQL数据库INNODB 表损坏修复处理过程
0624chenhong
tomcat mysql
最近mysql数据库经常死掉,用命令net stop mysql命令也无法停掉,关闭Tomcat的时候,出现Waiting for N instance(s) to be deallocated 信息。查了下,大概就是程序没有对数据库连接释放,导致Connection泄露了。因为用的是开元集成的平台,内部程序也不可能一下子给改掉的,就验证一下咯。启动Tomcat,用户登录系统,用netstat -
剖析如何与设计人员沟通
不懂事的小屁孩
工作
最近做图烦死了,不停的改图,改图……。烦,倒不是因为改,而是反反复复的改,人都会死。很多需求人员不知该如何与设计人员沟通,不明白如何使设计人员知道他所要的效果,结果只能是沟通变成了扯淡,改图变成了应付。
那应该如何与设计人员沟通呢?
我认为设计人员与需求人员先天就存在语言障碍。对一个合格的设计人员来说,整天玩的都是点、线、面、配色,哪种构图看起来协调;哪种配色看起来合理心里跟明镜似的,
qq空间刷评论工具
换个号韩国红果果
JavaScript
var a=document.getElementsByClassName('textinput');
var b=[];
for(var m=0;m<a.length;m++){
if(a[m].getAttribute('placeholder')!=null)
b.push(a[m])
}
var l
S2SH整合之session
灵静志远
spring AOP struts session
错误信息:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cartService': Scope 'session' is not active for the current thread; consider defining a scoped
xmp标签
a-john
标签
今天在处理数据的显示上遇到一个问题:
var html = '<li><div class="pl-nr"><span class="user-name">' + user
+ '</span>' + text + '</div></li>';
ulComme
Ajax的常用技巧(2)---实现Web页面中的级联菜单
aijuans
Ajax
在网络上显示数据,往往只显示数据中的一部分信息,如文章标题,产品名称等。如果浏览器要查看所有信息,只需点击相关链接即可。在web技术中,可以采用级联菜单完成上述操作。根据用户的选择,动态展开,并显示出对应选项子菜单的内容。 在传统的web实现方式中,一般是在页面初始化时动态获取到服务端数据库中对应的所有子菜单中的信息,放置到页面中对应的位置,然后再结合CSS层叠样式表动态控制对应子菜单的显示或者隐
天-安-门,好高
atongyeye
情感
我是85后,北漂一族,之前房租1100,因为租房合同到期,再续,房租就要涨150。最近网上新闻,地铁也要涨价。算了一下,涨价之后,每次坐地铁由原来2块变成6块。仅坐地铁费用,一个月就要涨200。内心苦痛。
晚上躺在床上一个人想了很久,很久。
我生在农
android 动画
百合不是茶
android 透明度 平移 缩放 旋转
android的动画有两种 tween动画和Frame动画
tween动画;,透明度,缩放,旋转,平移效果
Animation 动画
AlphaAnimation 渐变透明度
RotateAnimation 画面旋转
ScaleAnimation 渐变尺寸缩放
TranslateAnimation 位置移动
Animation
查看本机网络信息的cmd脚本
bijian1013
cmd
@echo 您的用户名是:%USERDOMAIN%\%username%>"%userprofile%\网络参数.txt"
@echo 您的机器名是:%COMPUTERNAME%>>"%userprofile%\网络参数.txt"
@echo ___________________>>"%userprofile%\
plsql 清除登录过的用户
征客丶
plsql
tools---preferences----logon history---history 把你想要删除的删除
--------------------------------------------------------------------
若有其他凝问或文中有错误,请及时向我指出,
我好及时改正,同时也让我们一起进步。
email : binary_spac
【Pig一】Pig入门
bit1129
pig
Pig安装
1.下载pig
wget http://mirror.bit.edu.cn/apache/pig/pig-0.14.0/pig-0.14.0.tar.gz
2. 解压配置环境变量
如果Pig使用Map/Reduce模式,那么需要在环境变量中,配置HADOOP_HOME环境变量
expor
Java 线程同步几种方式
BlueSkator
volatile synchronized ThredLocal ReenTranLock Concurrent
为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用, 从而保证了该变量的唯一性和准确性。 1.同步方法&
StringUtils判断字符串是否为空的方法(转帖)
BreakingBad
null StringUtils “”
转帖地址:http://www.cnblogs.com/shangxiaofei/p/4313111.html
public static boolean isEmpty(String str)
判断某字符串是否为空,为空的标准是 str==
null
或 str.length()==
0
编程之美-分层遍历二叉树
bylijinnan
java 数据结构 算法 编程之美
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class LevelTraverseBinaryTree {
/**
* 编程之美 分层遍历二叉树
* 之前已经用队列实现过二叉树的层次遍历,但这次要求输出换行,因此要
jquery取值和ajax提交复习记录
chengxuyuancsdn
jquery取值 ajax提交
// 取值
// alert($("input[name='username']").val());
// alert($("input[name='password']").val());
// alert($("input[name='sex']:checked").val());
// alert($("
推荐国产工作流引擎嵌入式公式语法解析器-IK Expression
comsci
java 应用服务器 工作 Excel 嵌入式
这个开源软件包是国内的一位高手自行研制开发的,正如他所说的一样,我觉得它可以使一个工作流引擎上一个台阶。。。。。。欢迎大家使用,并提出意见和建议。。。
----------转帖---------------------------------------------------
IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言
关于系统中使用多个PropertyPlaceholderConfigurer的配置及PropertyOverrideConfigurer
daizj
spring
1、PropertyPlaceholderConfigurer
Spring中PropertyPlaceholderConfigurer这个类,它是用来解析Java Properties属性文件值,并提供在spring配置期间替换使用属性值。接下来让我们逐渐的深入其配置。
基本的使用方法是:(1)
<bean id="propertyConfigurerForWZ&q
二叉树:二叉搜索树
dieslrae
二叉树
所谓二叉树,就是一个节点最多只能有两个子节点,而二叉搜索树就是一个经典并简单的二叉树.规则是一个节点的左子节点一定比自己小,右子节点一定大于等于自己(当然也可以反过来).在树基本平衡的时候插入,搜索和删除速度都很快,时间复杂度为O(logN).但是,如果插入的是有序的数据,那效率就会变成O(N),在这个时候,树其实变成了一个链表.
tree代码:
C语言字符串函数大全
dcj3sjt126com
c function
C语言字符串函数大全
函数名: stpcpy
功 能: 拷贝一个字符串到另一个
用 法: char *stpcpy(char *destin, char *source);
程序例:
#include <stdio.h>
#include <string.h>
int main
友盟统计页面技巧
dcj3sjt126com
技巧
在基类调用就可以了, 基类ViewController示例代码
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[MobClick beginLogPageView:[NSString stringWithFormat:@"%@",self.class]];
window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
flyvszhb
java jdk
window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
本机已经安装了jdk1.7,而比较早期的项目需要依赖jdk1.6,于是同时在本机安装了jdk1.6和jdk1.7.
安装jdk1.6前,执行java -version得到
C:\Users\liuxiang2>java -version
java version "1.7.0_21&quo
Java在创建子类对象的同时会不会创建父类对象
happyqing
java 创建 子类对象 父类对象
1.在thingking in java 的第四版第六章中明确的说了,子类对象中封装了父类对象,
2."When you create an object of the derived class, it contains within it a subobject of the base class. This subobject is the sam
跟我学spring3 目录贴及电子书下载
jinnianshilongnian
spring
一、《跟我学spring3》电子书下载地址:
《跟我学spring3》 (1-7 和 8-13) http://jinnianshilongnian.iteye.com/blog/pdf
跟我学spring3系列 word原版 下载
二、
源代码下载
最新依
第12章 Ajax(上)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
BI and EIM 4.0 at a glance
blueoxygen
BO
http://www.sap.com/corporate-en/press.epx?PressID=14787
有机会研究下EIM家族的两个新产品~~~~
New features of the 4.0 releases of BI and EIM solutions include:
Real-time in-memory computing –
Java线程中yield与join方法的区别
tomcat_oracle
java
长期以来,多线程问题颇为受到面试官的青睐。虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用。之前,我讨论了一个wait()和sleep()方法区别的问题,这一次,我将会讨论join()和yield()方法的区别。坦白的说,实际上我并没有用过其中任何一个方法,所以,如果你感觉有不恰当的地方,请提出讨论。
&nb
android Manifest.xml选项
阿尔萨斯
Manifest
结构
继承关系
public final class Manifest extends Objectjava.lang.Objectandroid.Manifest
内部类
class Manifest.permission权限
class Manifest.permission_group权限组
构造函数
public Manifest () 详细 androi
Oracle实现类split函数的方
zhaoshijie
oracle
关键字:Oracle实现类split函数的方
项目里需要保存结构数据,批量传到后他进行保存,为了减小数据量,子集拼装的格式,使用存储过程进行保存。保存的过程中需要对数据解析。但是oracle没有Java中split类似的函数。从网上找了一个,也补全了一下。
CREATE OR REPLACE TYPE t_split_100 IS TABLE OF VARCHAR2(100);
cr