Java

java解惑你知多少(二)

8.+=复合赋值问题x+=i与x=x+i等效吗,许多程序员都会认为第一个表达式x+=i只是第二个表达式x=x+i的简写方式,但这并不准确。Java语言规范中提到:复合赋值E1op=E2等价于简单赋值E1=(T)((E1)op(E2)),其中T是E1的类型。复合赋值表达式自动地将所执行计算的结果转型为其左侧变量的类型。如果结果的类型与该变量的类型相同,那么这个转型不会造成任何影响,然而,如果结果的类型比该变量的类型要宽,那么复合赋值操作符将悄悄地执行一个窄化

系统 2019-08-29 22:02:50 2453

Java

Java中的枚举(一)

在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。在Java中想表示这种数据集最容易想到的写法可能是这样,我们以表示一周五天的工作日来举例:Java代码publicclassWeekDay{publicstaticfinalintMONDAY=1;publicstaticfinalintTUESDAY=2;p

系统 2019-08-29 23:47:43 2452

Java

java JNI 调用c或c++,windows 或 Linux系统

由于java程序需要调用C或C++的代码,不得不使用JNI。C的代码在Win32和Linux下都有相同功能的不同实现,就像JDK分几种平台版本(win32,linux,solaris等)。首先,看一看首先,看一看win32下调用dll文件。1,新建HelloWorld.java1publicclassHelloWorld2{3static4{5try6{7//此处即为本地方法所在链接库名8System.loadLibrary("HelloWorld");9

系统 2019-08-29 23:39:19 2452

Java

Effective Java (类和接口)

十三、使类和成员的可访问性最小化:信息隐藏是软件程序设计的基本原则之一,面向对象又为这一设计原则提供了有力的支持和保障。这里我们简要列出几项受益于该原则的优势:1.更好的解除各个模块之间的耦合关系:由于模块间的相互调用是基于接口契约的,每个模块只是负责完成自己内部既定的功能目标和单元测试,一旦今后出现性能优化或需求变更时,我们首先需要做的便是定位需要变动的单个模块或一组模块,然后再针对各个模块提出各自的解决方案,分别予以改动和内部测试。这样便大大降低了因代

系统 2019-08-29 22:02:34 2452

Java

有答案了!一张图告诉你到底学Python还是Java!你咋看?

2019年,该学Java还是Python?不,实际上应该这样问:都9102年了,难道有谁不想成为Python程序员吗?作为“常青树大佬”Java和“新晋大佬”Python,经常被人拿来对比,对于刚开始起步学习编程的同学来说,会迷惑且最经常问的问题是,我该学Java还是Python?作为一名Java程序员,肯定会建议你先学Java,然后再学Python,但如果你问一个Python程序员,可能会得到一个完全相反的答案。与此同时,Python已经不再是乳臭未干的

系统 2019-09-27 17:47:47 2451

Java

Effective Java (并发)

六十六、同步访问共享的可变数据:在Java中很多时候都是通过synchronized关键字来实现共享对象之间的同步的。事实上,对象同步并不仅限于当多个线程操作同一可变对象时,仍然能够保证该共享对象的状态始终保持一致。与此同时,他还可以保证进入同步方法或者同步代码块的每个线程,都看到由同一个锁保护的之前所有的修改效果。Java的语言规范保证了读写一个变量是原子的,除非这个变量的类型为long或double。换句话说,读取一个非long或double类型的变量

系统 2019-08-29 22:02:40 2451

Java

【java多线程与并发库】---传统java多线程<1>线

一.线程的基本概念1、入题:我们大家都知道,我们可以在一台计算机上同时聊天,看电影,下载视频等,完成上述任务的各个程序之间是完全相互独立的。但是他们在同一段时间内又同时处于运行状态。当然呢,它们在这一段时间内是分时使用计算机CPU时间的。只不过呢在CPU处理速度很快,划分的时间片段很短,所以给大家感觉上是多个程序在同时运行。2、进程:进程是程序的一次动态执行过程。这个过程包含了从程序代码从硬盘加载到内存、在内存中执行、执行结束等过程,实际上也就是进程的产生

系统 2019-08-12 09:29:59 2451

Java

java字符串应用之表达式解析器

一、表达式的组成1、数字2、运算符:+-/*^%=3、圆括号4、变量二、运算符优先级由高到低分别为:+-(正负号)、^、*/%、+-、=优先级相等的运算符按照从左到右的顺序计算三、关键技术点1、确定运算的优先级,从高到低分别为:原子元素表达式,包括数字和变量;括号表达式;一元表达式,取数的负数;指数表达式;乘、除、取模表达式;加、减表达式;赋值表达式。2、对于每一级别的运算,都由一个方法实现,在方法中先完成比自己高一级别的运算,再处理本级别的运算。因此,在

系统 2019-08-12 09:29:44 2451

Java

java异常

e.printStackTrace();本文从Java异常最基本的概念、语法开始讲述了Java异常处理的基本知识,分析了Java异常体系结构,对比Spring的异常处理框架,阐述了异常处理的基本原则。并且作者提出了自己处理一个大型应用系统异常的思想,并通过设计一个异常处理的框架来论述此思想。一、异常的概念和Java异常体系结构异常是程序运行过程中出现的错误。本文主要讲授的是Java语言的异常处理。Java语言的异常处理框架,是Java语言健壮性的一个重要体

系统 2019-08-12 09:29:41 2451

Java

[selenium webdriver Java]处理弹出窗口

SeleniumWebDriver测试弹出窗口,包括识别弹出窗口,将driver转到新的窗口,在新的串钩中执行而是步骤,然后再转换到最初的窗口。通过名称(name)识别和处理:SeleniumWebDriver允许我们通过name属性或窗口的句柄来识别窗口,然后通过WebDriver.switchTo().window()方法在不同的窗口之间进行切换。windowname属性的定义name属性可设置或得到窗口的名称,其值为字符串。语法如下:1window.

系统 2019-08-12 09:27:14 2451

Java

Sublime run Java code after compiling

很简单.Preferences--browsepackages--打开java文件夹--编辑Java.sublime-build{"cmd":["javac","$file"],"cmd":["java","$file_base_name"],"file_regex":"^(...*?):([0-9]*):?([0-9]*)","selector":"source.java","encoding":"utf-8"}sublimetext.com的forum

系统 2019-08-12 09:27:08 2451

Java

head first java

一本非常棒的书,不愧“headfirst”的称谓。清晰的条理,生动的图示,偶尔来点老外的幽默——其实中国人不太能理解,阅读体验非常舒畅。oreilly的这个系列应该都很熟悉了,优点多多估计大家都知道,就不提了,说点不优的吧。如果你熟悉一门类似的静态面向对象语言(例如C#)那就不要看这个了,你会觉得有些罗嗦,因为大部分语言特性你都很清楚,没有必要看那么多示例、提示和比较等等;如果你是想全面的了解java语言,估计你会很失望,这本书里面甚至没有讲“反射”;如果

系统 2019-08-29 22:48:24 2450

Java

开源 免费 java CMS - FreeCMS1.3-系统配置

下载地址:http://code.google.com/p/freecms/系统配置从FreeCMS1.2开始支持管理系统使用的配置项。从左侧管理菜单点击系统配置进入。从FreeCMS1.3开始支持会员禁用登录名邮件相关配置开源免费javaCMS-FreeCMS1.3-系统配置

系统 2019-08-12 01:32:52 2450