Welcome 微信登录

首页 / 软件开发 / JAVA

Java进阶学习(三) IO基础

Java进阶学习(三) IO基础

Java进阶学习(三) IO基础2014-08-28计算机最重要的功能是处理数据。一个有用的计算机语言需要拥有良好的IO功能,以便让未处理的数据流入程序,让已处理的数据流出。与其他语言相比,Java的IO功能显得复杂。在其他语言中,许多IO功能(比如读取文件),是被封装好的,可以用一两行程序实现。在Java中,程序员往往需要多个层次的装饰(decoration),才能实现文件读取。相对的复杂性带来的好处是IO的灵活性。在Java中,程序员可以控制IO的整个...
Java进阶学习(五) 多线程

Java进阶学习(五) 多线程

Java进阶学习(五) 多线程2014-08-28多线程多线程(multiple thread)是计算机实现多任务并行处理的一种方式。在单线程情况下,计算机中存在一个控制权,并按照顺序依次执行指令。单线程好像是一个只有一个队长指挥的小队,整个小队同一个时间只能执行一个任务。单线程在多线程情境下,计算机中有多个控制权。多个控制权可以同时进行,每个控制权依次执行一系列的指令。多线程好像是一个小队中的成员同时执行不同的任务。可参考Linux多线程与同步,并对比P...
Java进阶学习(六) 容器

Java进阶学习(六) 容器

Java进阶学习(六) 容器2014-08-28Java中有一些对象被称为容器(container)。容器中可以包含多个对象,每个对象称为容器中的一个元素。容器是用对象封装的数据结构(data structure)。充满梦想的容器不同的数据结构有不同的组织元素的方式,也可以有不同的操作。根据具体实施的不同,数据结构的操作效率也各有差别。Java中的容器也是这样。我们要选择适当的容器,以应对变化的需求。(关于数据结构更多的内容,可参考)数组数组(array)...
Java进阶学习(七) 嵌套类

Java进阶学习(七) 嵌套类

Java进阶学习(七) 嵌套类2014-08-28到现在为止,我们都是在Java文件中直接定义类。这样的类出现在包(package)的级别上。Java允许类的嵌套定义。这里将讲解如何在一个类中嵌套定义另一个类。嵌套内部类Java允许我们在类的内部定义一个类。如果这个类是没有static修饰符,那么这样一个嵌套在内部的类称为内部类(inner class)。内部类被认为是外部对象的一个成员。在定义内部类时,我们同样有访问权限控制(public, privat...
Java进阶学习(八) GUI

Java进阶学习(八) GUI

Java进阶学习(八) GUI2014-08-28GUI(Graphical User Interface)提供了图形化的界面,允许用户以图形的方式与系统进行互动。在GUI推广之前,用户通常要以文本命令的方式来控制计算机。GUI直观的将计算机的功能呈现给用户,降低了用户使用计算机的门槛。苹果和微软是GUI方面的先驱(虽然他们都一定程度上抄袭了Xerox),GUI也为这两位PC王者带来了丰厚的市场回报。早期Mac GUIGUI需要操作系统和硬件的支持。因此,...
Java进阶学习(九) 事件响应

Java进阶学习(九) 事件响应

Java进阶学习(九) 事件响应2014-08-28在GUI中,我们看到了如何用图形树来组织一个图形界面。然而,这样的图形界面是静态的。我们无法互动的对该界面进行操作。GUI的图形元素需要增加事件响应(event handling),才能得到一个动态的图形化界面。元素, 事件, 监听器我们在GUI一文中提到了许多图形元素。有一些事件(Event)可能发生在这些图形元素上,比如:点击按钮拖动滚动条选择菜单Java中的事件使用对象表示,比如ActionEven...
Java进阶学习(十) 内存管理与垃圾回收

Java进阶学习(十) 内存管理与垃圾回收

Java进阶学习(十) 内存管理与垃圾回收2014-08-28整个教程中已经不时的出现一些内存管理和垃圾回收的相关知识。这里进行一个小小的总结。Java是在JVM所虚拟出的内存环境中运行的。内存分为栈(stack)和堆(heap)两部分。我们将分别考察这两个区域。栈栈的基本概念参考。许多语言利用栈数据结构来记录函数调用的次序和相关变量(参考)。在Java中,JVM中的栈记录了线程的方法调用。每个线程拥有一个栈。在某个线程的运行过程中,如果有新的方法调用,那...
JNI的替代者:如何使用JNR访问Java外部函数接口(jnr-ffi)

JNI的替代者:如何使用JNR访问Java外部函数接口(jnr-ffi)

JNI的替代者:如何使用JNR访问Java外部函数接口(jnr-ffi)2014-08-28 cnblogs Alexia1. JNR简单介绍继上文“JNI的替代者—使用JNA访问Java外部函数接口”,我们知道JNI越来越不受欢迎,JNI是编写Java本地方法以及将Java虚拟机嵌入本地应用程序的标准编程接口。它管理着JVM和非托管的本地环境之间的边界,提供数据编组和对象生命周期管理协议。根据JEP(JDK增强提案) ...
java程序将汉字存入mysql数据库中时变成乱码

java程序将汉字存入mysql数据库中时变成乱码

java程序将汉字存入mysql数据库中时变成乱码2014-08-30今天郁闷了一天,java程序在向mysql插入数据前不是乱码,数据库安装时也选了编码为utf8(和我程序的编码格式一致)。可是插入数据就变成乱码,相当郁闷。原因:mysql的配置文件中的编码并没有改成utf8,;解决办法:在mysql的安装目录下找到my.ini文件,将里面两处涉及编码的地方改成utf8,如下:# MySQL Server Instance Configuration F...
如何使用Contemplate ThreadSafe发现并判断Java并发问题

如何使用Contemplate ThreadSafe发现并判断Java并发问题

如何使用Contemplate ThreadSafe发现并判断Java并发问题2014-08-30 infoq 译:张卫滨事实证明,要发挥多核硬件所带来的收益是很困难和有风险的。当使用并发正确和安全地编写Java软件时,我们需要很仔细地进行思考。因为错误使用并发会导致偶尔才出现的缺陷,这些缺陷甚至能够躲过最严格的测试环境。静态分析工具提供了一种方式,可以在代码执行之前探查并修正并发错误。它能够在代码执行之前分析程序的源码或编译形成的字节码,进而发现隐藏在代...
简述Java测试的自定义断言

简述Java测试的自定义断言

简述Java测试的自定义断言2014-08-30 infoq 梅雪松 译对于测试来说,编写断言似乎很简单:我们只需要对结果和预期进行比较,通常使用断言方法进行判断,例如测试框架提供的assertTrue()或者assertEquals()方法。然而,对于更复杂的测试场景,使用这些基础的断言验证结果可能会显得相当笨拙。使用这些基础断言的主要问题是,底层细节掩盖了测试本身,这是我们不希望看到的。在我看来,应该争取让这些测试使用业务语言来说话。在本篇文章中,我将...
JCA简介:一个名不见经传却重要的JavaEE规范

JCA简介:一个名不见经传却重要的JavaEE规范

JCA简介:一个名不见经传却重要的JavaEE规范2014-08-30 infoq 张建锋JCA(Java EE Connector Architecture)规范可以说是JavaEE规范集合里最“默默无闻”的,在JavaEE1.3规范发布时就加入了,比现在重要成员JPA, CDI等都早了很多。从应用开发角度来看,开发一个很普通的Web应用程序,只有几个页面,使用Servlet就可以完成,用JDBC API保存信息到数据库中,部署这...
如何在Java中使用ClassLoader载入类、文件和web资源等各种资源

如何在Java中使用ClassLoader载入类、文件和web资源等各种资源

如何在Java中使用ClassLoader载入类、文件和web资源等各种资源2014-08-30ClassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回这个类的class对象。ClassLoader负责载入系统的所有资源(Class,文件,图片,来自网络的字节流等),通过ClassLoader从而将资源载入JVM 中。每个class都有一个引用,指向自己的ClassLo...
<< 281 282 283 284 285 286 287 288 289 290 >>