小编abi*_*rai的帖子

Java NIO非阻塞模式与node.js异步操作

我没有仔细阅读node.js的代码细节.

但是,通过对Node.js中的线程的一些研究,我发现它有单线程来接受来自多个客户端的连接.

当与客户端连接时,它触发连接事件并侦听另一个客户端并以异步方式完全工作,并且从线程池执行客户端请求的休息操作,并通过回调将结果发送回主线程(接受连接的线程).

在Java NIO中同样也是ServerSocketChannel,SocketChannel可以设置为非阻塞模式,而选择器单线程可以监视多个通道.因此,使用NIO ServerSocketChannel,SocketChannel也可以从单个线程中为多个客户端异步管理连接

那么,NIO的非阻塞模式和与单线程异步的node.js是否遵循相同的单线程概念模式?正如他们都说他们在单线程上执行.

java multithreading asynchronous nio node.js

16
推荐指数
2
解决办法
5910
查看次数

使用Oltu传递给OAuthTokenRequest时无法使用@ Context HttpServletRequest检索发布数据

我正在使用Oltu作为Oauth2.

使用@Context HttpServletRequest请求时,我无法检索发布数据

当我使用@FormParam时,我能够检索发布数据.

在将请求传递给OAuthTokenRequest时

OAuthTokenRequest oauthRequest = new OAuthTokenRequest(request);
Run Code Online (Sandbox Code Playgroud)

我收到了以下错误

{"error":"invalid_request","error_description":"缺少grant_type参数值"}

在oltu OAuthTokenRequest类上进行调试时,使用以下代码来检索param值

public String getParam(String name) {
        return this.request.getParameter(name); // from request it is unable to get post data.As i am getting request object using  @Context HttpServletRequest request .
    }
Run Code Online (Sandbox Code Playgroud)

据说使用@Context HttpServletRequest请求无法获取使用@Context HttpServletRequest请求的帖子数据所以,我的问题是

如何在jax-ws中获取带有post数据的HttpServletRequest请求,以便我可以将HttpServletRequest请求传递给OAuthTokenRequest 这是我的代码

@Path("/token")
public class TokenEndpoint {

 @POST
    @Consumes("application/x-www-form-urlencoded")
    @Produces("application/json")
    public Response authorize(@FormParam("state") String state,@Context HttpServletRequest request) throws OAuthSystemException {
        try {
        // here I am unable to get value of request.getParameter("state") 
       // but using …
Run Code Online (Sandbox Code Playgroud)

java jax-ws oauth-2.0 oltu

15
推荐指数
1
解决办法
5388
查看次数

使用spring记录org.apache.commons.dbcp.BasicDataSource的连接池

我正在尝试org.apache.commons.dbcp.BasicDataSource使用log4j 记录连接池

我使用spring框架进行dao层注入.

当我看到里面的代码时org.apache.commons.dbcp.BasicDataSource,没有使用Logger.因此,似乎无法为我记录池信息.

但我再次看到这个链接 http://forum.springsource.org/showthread.php?38306-Connection-Pooling-debug-info.
有人说要放 log4j.category.org.apache.dbcp=DEBUG.但我找不到合适的答案.
所以我的问题是,可以使用log4j连接池日志org.apache.commons.dbcp.BasicDataSource吗?

spring log4j

14
推荐指数
1
解决办法
8879
查看次数

为什么Java中的最终实例类变量?

如果实例变量设置为final,则其值不能更改为

public class Final {

    private final int b;

    Final(int b) {
        this.b = b; 
    }

    int getFinal() {
        return  b = 8;  // COMPILE TIME ERROR 
    }
}
Run Code Online (Sandbox Code Playgroud)


在代码的某处我看到实例类变量 HashMap被 声明为final

 private  final Map<String, Object> cacheMap = new HashMap<String, Object>();
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这样宣布?通常在这种情况下它被声明.这是否意味着如果我放入哈希映射然后我无法更改其值?

编辑:
如果声明为final的cacheMap作为参数传递给另一个类,那么如果我更改其引用,则不会显示final的错误.为什么会这样?

 class CacheDTO {

    private Map conditionMap;

    public Map getConditionMap() {
        return conditionMap;
    }

    public void setConditionMap(Map conditionMap) {
        this.conditionMap = conditionMap;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后

private  final Map<String, Object> cacheMap = new HashMap<String, Object>();
CacheDTO cc = …
Run Code Online (Sandbox Code Playgroud)

java final

14
推荐指数
2
解决办法
1万
查看次数

Java 8 MapReduce用于分布式计算

当我parallelStream()在Java 8中听到它在多个内核上进行处理并最终在单个JVM中返回结果时,我很高兴.没有更多的多线程代码行.据我所知,这仅对单个JVM有效.

但是,如果我想在单个主机甚至多个主机上的不同JVM上分发处理,该怎么办?Java 8是否包含任何用于简化它的抽象?

dreamsyssoft.com教程中,用户列表

private static List<User> users = Arrays.asList(
    new User(1, "Steve", "Vai", 40),
    new User(4, "Joe", "Smith", 32),
    new User(3, "Steve", "Johnson", 57),
    new User(9, "Mike", "Stevens", 18),
    new User(10, "George", "Armstrong", 24),
    new User(2, "Jim", "Smith", 40),
    new User(8, "Chuck", "Schneider", 34),
    new User(5, "Jorje", "Gonzales", 22),
    new User(6, "Jane", "Michaels", 47),
    new User(7, "Kim", "Berlie", 60)
);
Run Code Online (Sandbox Code Playgroud)

经过处理以获得他们的平均年龄:

double average = users.parallelStream().map(u -> u.age).average().getAsDouble();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它在单个主机上处理.

我的问题是:它可以使用多个主机进行处理吗?

例如,Host1 …

java hadoop mapreduce cluster-computing akka

13
推荐指数
1
解决办法
5666
查看次数

更新Google云端的现有磁盘大小

我在谷歌云中有10G空间磁盘,名称为disk1.

根持久性磁盘已经占用了大约4到5 GB,剩下5 GB被其他程序占用,所以几乎满了10GB.我的情况是我无法添加其他磁盘,我必须在同一个磁盘上工作.

我想将此磁盘大小从10 GB增加到20 GB,在https://cloud.google.com/compute/docs/disks#repartitionrootpd中我无法看到增加现有磁盘大小的方法在我的情况下增加disk1的大小到20GB 是否可以更新现有磁盘大小?

cloud google-compute-engine

9
推荐指数
2
解决办法
6303
查看次数

反射性能:JVM中的高质量字节代码

编辑2:具有完全object-oriented实现的程序是否具有高性能?大多数framework都是用它的全部功能编写的.然而,reflection也被大量用于实现它,因为AOPdependency injection.使用reflection会在一定程度上影响性能.

那么,使用它是好的做法reflection吗?是否有一些替代编程语言结构的反射?应该reflection在多大程度上使用?

java reflection coding-style bytecode

8
推荐指数
2
解决办法
2349
查看次数

boolean containsAll(Collection <?> c)vs boolean addAll(Collection <?extends E> c)的设计决策; 在集合框架中

为什么boolean containsAll(Collection <?> c); 每种类型都允许使用收集框架的方法吗?.但是 boolean addAll(Collection <?extends E> c); 允许?延伸E.所以,我写了一个澄清程序.这是我的计划

public class ContainAllTest {
    // take ServiceDto 
    ArrayList<ServiceDto> resultList = new ArrayList<ServiceDto>();

    void Test() {

        ServiceDto serviceDto = new ServiceDto();
        serviceDto.setName("test");
        resultList.add(serviceDto);
        // another arraylist that takes String 
        ArrayList<String> resultList1 = new ArrayList<String>();
        resultList1.add("test");
        // no error, goes for run time.Contain all checking is done for two generic type ServiceDto and String:
        resultList.containsAll(resultList1);
        // error shown at compile time,as addAll take ServiceDto as generic type …
Run Code Online (Sandbox Code Playgroud)

java generics wildcard

6
推荐指数
1
解决办法
1368
查看次数

spring中物理和逻辑事务的区别

在这个 spring 文档 http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/transaction.html 中。它谈到了物理和逻辑事务。我写了一个非常简单的程序来理解

TransactionObject.java

class TransactionObject {

    private static Connection conn;

    TransactionObject() {
        try {
            conn = DriverManager.getConnection("DB_URL", "USER", "PASS");
        } catch (SQLException e) {}
    }

    void rollBack() {
        try {
            conn.rollback();
        } catch (SQLException e) { }
    }

    void Commit() {
        try {
            conn.commit();
        } catch (SQLException e) { }
    }
}
Run Code Online (Sandbox Code Playgroud)

ClassMethodUnderTransactionObject.java

public class ClassMethodUnderTransactionObject {
    // start fresh TransactionObject
    TransactionObject  logical= new TransactionObject();

    M2(); // call M2 use same logical object
    M3(); // call …
Run Code Online (Sandbox Code Playgroud)

java spring transactions spring-transactions

5
推荐指数
1
解决办法
4467
查看次数

收集框架,大数据和最佳实践

我有下课

public class BdFileContent {
    String filecontent;
}
Run Code Online (Sandbox Code Playgroud)

例如file1.txt具有以下内容:

This is test
Run Code Online (Sandbox Code Playgroud)
  • "This"表示文件内容对象的单个实例.
  • "is"表示另一个文件内容对象
  • "test"表示另一个文件内容对象

假设以下是文件夹结构:

lineage
|
+-folder1
|    |
|    +-file1.txt
|    +-file2.txt
|
+-folder2
|    |
|    +-file3.txt
|    +-file4.txt
+-...
|
+-...+-fileN.txt
Run Code Online (Sandbox Code Playgroud)

....

ñ

N> 1000个文件
N值将是非常巨大的值

BdFileContent类表示目录中文件中的每个字符串.

我必须做大量的数据操作,需要在复杂的数据结构上创建工作.我必须在内存和磁盘上执行计算.

ArrayList<ArrayList<ArrayList<BdFileContent>>> filecontentallFolderFileAsSingleStringToken = new ArrayList<>(); 
Run Code Online (Sandbox Code Playgroud)

例如,Above对象表示目录的所有文件内容.我必须在BdTree中为树节点添加此对象.

我正在编写自己的树并将filecontentallFolderFileAsSingleStringToken添加为节点.

在什么扩展集合框架数据结构适合于大数据.

在这一点上,我想了解大公司如何使用数据结构来处理每天生成的大量数据.

他们使用收集框架吗?

他们使用自己的自定义数据结构吗?

他们是否使用多节点数据结构,每个节点在单独的JVM上运行?

直到现在集合对象在单个jvm上运行,并且当内存中存在溢出流的信号并且缺少处理资源时,无法动态使用另一个jvm

通常,其他开发人员处理大数据的数据结构的方法是什么?

其他开发者如何处理它?

我想得到一些真实用例和经验的提示.

java collections hadoop bigdata data-structures

5
推荐指数
1
解决办法
1271
查看次数