java入门
文章平均质量分 67
DM--Tutor
大数据,数据分析,数据挖掘,机器学习,深度学习
QQ: 403184692
展开
-
Java:The selected server is enabled,but is nt configured properly
今天帮同学调试程序,由于很长时间没有用Myeclipse了,所以很多配置问题比较生疏,结果就正好碰到了一个这样的问题,项目写好后,往Tomcat上进行部署,Tomcat没有用Myeclipse自身的,而是网上下了一个最新版本的,就在选择好Tomcat服务器开始部署的时候出现了问题,其描述如下:The selected server is enabled,but is nt configur原创 2012-12-22 21:12:02 · 3340 阅读 · 0 评论 -
Java线程(五):线程池
自JDK5之后,Java推出了一个并发包,java.util.concurrent,在Java开发中,我们接触到了好多池的技术,String类的对象池、Integer的共享池、连接数据库的连接池、Struts1.3的对象池等等,池的最终目的都是节约资源,以更小的开销做更多的事情,从而提高性能。 我们的web项目都是部署在服务器上,浏览器端的每一个request就是一个线程,那转载 2012-09-25 12:20:50 · 1200 阅读 · 0 评论 -
Java线程(三):线程协作-生产者/消费者模式
上一篇讲述了线程的互斥(同步),但是在很多情况下,仅仅同步是不够的,还需要线程与线程协作(通信),生产者/消费者模式是一个经典的线程同步以及通信的模型。 假设有这样一种情况,有一个盘子,盘子里只能放一个鸡蛋,A线程专门往盘子里放鸡蛋,如果盘子里有鸡蛋,则一直等到盘子里没鸡蛋,B线程专门从盘子里取鸡蛋,如果盘子里没鸡蛋,则一直等到盘子里有鸡蛋。这里盘子是一个互斥区,每次放鸡蛋是转载 2012-09-25 12:16:31 · 1365 阅读 · 0 评论 -
Java线程(八):Condition-线程通信更高效的方式
上一篇讲述了并发包下的Lock,Lock可以更好的解决线程同步问题,使之更面向对象,并且ReadWriteLock在处理同步时更强大,那么同样,线程间仅仅互斥是不够的,还需要通信,本篇的内容是基于上篇之上,使用Lock如何处理线程通信。 那么引入本篇的主角,Condition,Condition 将 Object 监视器方法(wait、notify 和 notifyAll)分转载 2012-09-25 12:33:55 · 1968 阅读 · 0 评论 -
Java线程(七):锁对象Lock-同步问题更完美的处理方式
Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题,我们拿Java线程(二)中的一个例子简单的实现一下和sychronized一样的效果,代码如下:[java] view plaincopyprint?转载 2012-09-25 12:32:57 · 1052 阅读 · 0 评论 -
Java线程(一):线程安全与不安全
当我们查看JDK API的时候,总会发现一些类说明写着,线程安全或者线程不安全,比如说StringBuilder中,有这么一句,“将StringBuilder 的实例用于多个线程是不安全的。如果需要这样的同步,则建议使用StringBuffer。 ”,那么下面手动创建一个线程不安全的类,然后在多线程中使用这个类,看看有什么效果。 Count.java:转载 2012-09-25 12:11:52 · 1448 阅读 · 0 评论 -
Java线程(十):CyclicBarrier-用路障实现分阶段线程并发
生活中我们常常会遇到这样的情景:10个朋友邀约去公园玩,彼此约好上午十点在小区门口集合然后一块租车过去,可能上午九点就会有人开始到了门口,但是因为人没有来全,必须等剩下的人,最后等到人全后大家一块到公园,到达公园后又约定分头开始玩,下午6点的时候公园门口集合,然后一块回去。在我们java编程过程中也会遇到类似的情况,要求必须几个线程都运行完后才可以进行下一步的操作,这就用到了循环路障类--Cycl原创 2012-09-25 19:18:15 · 1586 阅读 · 2 评论 -
Java线程(十一):CountDownLatch-线程并发的发令枪
田径赛百米短跑时,运动员会在起跑线做准备动作,等到发令枪一声响,运动员就会奋力奔跑。在多线程运行时,也有这么一个发令枪--CountDownLatch,它通过控制事先定义的计数来控制线程的运行。 CountDownLatch的构造方法如下:CountDownLatch(int count); //构造一个用给定计数初始化的 CountDownLatch。原创 2012-09-26 11:08:47 · 5560 阅读 · 0 评论 -
Java线程(十二):Exchanger-兄弟线程的信息交换
如果两个线程在运行过程中需要交换彼此的信息,比如一个数据或者使用的空间,就需要用到Exchanger这个类,Exchanger为线程交换信息提供了非常方便的途径,它可以作为两个线程交换对象的同步点,只有当每个线程都在进入 exchange ()方法并给出对象时,才能接受其他线程返回时给出的对象。 Exchanger的构造方法如下:Exchanger()原创 2012-09-26 11:36:58 · 1998 阅读 · 0 评论 -
Java线程(九):Semaphore-信号灯机制
当我们创建一个可扩展大小的线程池,并且需要在线程池内同时让有限数目的线程并发运行时,就需要用到Semaphore(信号灯机制),Semaphore 通常用于限制可以访问某些资源(物理或逻辑的)的线程数目,它是一个计数信号量,从概念上讲,信号量维护了一个许可集合,如有必要,在许可可用前会阻塞每一个acquire(),然后再获取该许可,每个release() 添加一个许可,从而可能释放一个正在阻塞原创 2012-09-25 16:24:00 · 5653 阅读 · 2 评论 -
Java线程(四):Timer和TimerTask
Timer和TimerTask可以做为实现线程的第三种方式,前两中方式分别是继承自Thread类和实现Runnable接口。 Timer是一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask。TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力。转载 2012-09-25 12:17:51 · 1474 阅读 · 0 评论 -
Java线程(六):Callable和Future
接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。 Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行转载 2012-09-25 12:22:32 · 1481 阅读 · 0 评论 -
Java:比较运算符compareTo()、equals()、==之间的区别与应用总结
1、== 和 equals的区别: ==主要是两个变量值的比较,返回值为true 或者是false。对于普通变量,如:int a=10; int b= 10; a==b,返回为 true。而对于下面情况:String a=new String("abc");String b=new String("a原创 2012-10-21 11:24:20 · 34249 阅读 · 2 评论 -
Java:出现java.lang.UnsupportedClassVersionError: Bad version number in .class file解决办法
今天把编写好的程序部署到Tomcat上运行,输入http://localhost:8080,小猫跳了出来,但是再输入项目名称时,网页显示: 考虑到自己的JDK版本可能太老了,是不是不支持一些新的类和属性,就在网上下载了一个全新的JDK,安装完毕,运行,还是出现一样的界面,然后回头看服务器Tomcat方面,里面提示java.lang.UnsupportedClassVe原创 2012-12-07 20:02:26 · 7158 阅读 · 2 评论 -
Java:泛型简明教程(通俗易懂)
Java泛型简明教程泛型是Java SE 5.0中引入的一项特征,自从这项语言特征出现多年来,我相信,几乎所有的Java程序员不仅听说过,而且使用过它。关于Java泛型的教程,免费的,不免费的,有很多。我遇到的最好的教材有:The Java TutorialJava Generics and Collections, by Maurice Naftalin and Philip W转载 2012-12-06 16:23:04 · 3326 阅读 · 1 评论 -
Java:泛型类型使用总结
泛型是Sun 公司发布的JDK 5.0 中的一个重要特性,它的最大优点是提供了程序的类型安全同可以向后兼容。为了帮助读者更好地理解和使用型,本文通过一些示例从基本原理,重要概念,关键 技术,以及相似技术比较等多个角度对 Java 语言中的泛型技术进行了介绍,重点强调了泛型中的一些基本但又不是很好理解的概念。 为了避免和 C++ 中的模板混淆,本文简要介绍了 Java 中的泛型和原创 2012-12-05 11:23:15 · 6759 阅读 · 1 评论 -
Java: tomcat 6.0.33,6.0.35 getParameter 问题
一、代码大致结构如下: 1、页面a.jsp,代码如下:[javascript] view plaincopy"registFormID" name="form2" method="post" action="/customer/registUser.do"> "userName" id="uName" type="text" /转载 2012-11-20 21:07:21 · 1271 阅读 · 0 评论 -
Java:5大常用混淆器总结
从事Java编程的人都知道,可以通过逆向工程反编译得到Java程序的源代码,这种反编译工具之一就是JAD。因此,为保护我们的劳动成果,尽可能给反编译人员制造障碍,我们可以使用Java Obfuscator(Java混淆器)保护Java的类文件。Java Obfuscator的原理就是将字节码转换为一个逻辑上的对等物,这种转换后的版本极难拆散。即使有人试图去反编译,过程将极其艰难复杂,并很难绕过转载 2012-12-01 11:15:45 · 4538 阅读 · 0 评论 -
参数传递小结
基本的方法参数传递包括两类: 1.传递基本数据参数。如果参数传递的是基本类型,如int、short、double等,那么该方法会直接获得指定类型的数值,基本类型的数据时值传递,改变它不会影响方法调用者出传递的变量,方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影原创 2012-06-27 18:51:28 · 735 阅读 · 0 评论 -
Java:按值传递还是按引用传递详细解说
前天在做系统的时候被Java中参数传递问题卡了一下,回头查阅了相关的资料,对参数传递问题有了新的了解和掌握,但是有个问题感觉还是很模糊,就是Java中到底是否只存在值传递,因为在查阅资料时,经常看到有人说Java只有值传递,但有人说既有值传递,也有引用传递,对于两个观点个人觉得应该是站的角度不同而得出两个不同的说法,其实两个说法其中的原理是一样的,只要咱们懂得其中的原理,那么至于叫什么也就无所谓了转载 2012-11-14 23:02:12 · 153396 阅读 · 58 评论 -
Java:数组和集合类作为参数传递时的差别(问题解决,谢谢大家提醒)
最近在做项目时遇到一个List集合作为参数传递的问题,想起了以前总结的参数传递,参数传递包括值传递和引用传递,集合类的参数应该属于引用传递,脑子里突然就闪现到了数组,感觉数组也是一种特殊的集合,也应该是引用传递,于是就举了个简单的例子作为测试,但是测试结果大跌眼镜,数组居然没有实现像List集合那样的效果,现将问题罗列出来,请各位前辈指教,等问题解决后会做一下小结。问题如下 首先定原创 2012-11-13 10:30:57 · 11598 阅读 · 4 评论 -
Java:变量的赋值操作(祭奠我那悲催的基础知识)
今天编写系统程序,本来是一个参数传递问题(后面会有专门的帖子说这个问题),可是写着写着思绪就有点飘渺,偏偏就是这个时候出现了一个让我意想不到的语句问题,一个让我感到非常莫名其妙的问题,也是让我感觉很惭愧的问题,恍恍惚惚到网上查找答案,还真找到了这个类似的问题,看到下面的回复,心里一阵凉,很多人都不屑,感觉这种问题很好笑,应该是没有入门或者刚入门的菜鸟才会问的问题。自己学习编程也很长时间了,C、C+原创 2012-11-12 21:32:24 · 1913 阅读 · 1 评论 -
Java解析XML文档的四种方法详解
XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),SAX(SimpleAPI for XML),XSD(Xml Schema Definiti转载 2012-09-29 12:05:28 · 868 阅读 · 0 评论 -
Java线程(二):线程同步synchronized和volatile
上篇通过一个简单的例子说明了线程安全与不安全,在例子中不安全的情况下输出的结果恰好是逐个递增的,为什么会产生这样的结果呢,因为建立的Count对象是线程共享的,一个线程改变了其成员变量num值,下一个线程正巧读到了修改后的num,所以会递增输出。 要说明线程同步问题首先要说明Java线程的两个特性,可见性和有序性。多个线程之间是不能直接传递数据交互的,它们之间的交互只能通过共转载 2012-09-25 12:14:30 · 1134 阅读 · 0 评论 -
Java内部类引用外部类中的局部变量为何必须是final问题解析
今天编写一个多线程程序,发现在方法内定义内部类时,如果内部类调用了方法中的变量,那么该变量必须申明为final类型,百思不得其解,后来想到应该是生命周期的原因,因为方法内定义的变量是局部变量,离开该方法,变量就失去了作用,也就会自动被消除,而内部类却不会离开它所在方法就失去作用,它有更广的生命周期,下面通过一个实例加以说明: 如例中所示,在外部类Outer中声明了原创 2012-09-24 20:09:25 · 18383 阅读 · 8 评论 -
java中final和static关键字总结
一.final总结1.final修饰类:表示该类不可继承,final不能修饰interface接口2.final修饰方法:表示该方法不能被子类覆盖(即子类不能重写父类的final方法,可以继承),final不能修饰构造函数3.final修饰字段属性:表示属性值第一次初始化后不能被修改,final属性可以直接初始化或在构造函数中初始化,如果属性是直接初始化,则其值不能被其原创 2012-09-24 18:16:18 · 1574 阅读 · 0 评论 -
ContentType ,charset和pageEncoding的区别
========================说法一===========================ContentType 属性指定响应的 HTTP 内容类型。如果未指定 ContentType,默认为 text/HTML。 语法 Response.ContentType [= ContentType ] 参数 ContentType pageEnc转载 2012-08-10 21:09:59 · 937 阅读 · 0 评论 -
tomcat运行问题小结
由于需要web开发,今天下载下来tomcat服务器,下载的是zip格式的免安装版,按照教程,直接解压后启动bin文件夹中的startup.bat,但是运行窗口只闪了一下就关闭了,在浏览器中输入:http;//localhost:8080/,提示说没有权限,然后试着修改了tomcat文件夹中的用户权限,重新输入,还是出现原来的问题,之后想到操作系统位数问题,在官网上下载了一个与自己计算机位数相同的t原创 2012-07-01 13:27:46 · 713 阅读 · 1 评论 -
MyEclipse中Tomcat的启动失败
今天调试java web程序,使用的不是Myeclipse中自带的tomcat服务器,网上自行下载了一个tomcat6.0,但是通过Myecipse启动tomcat时出现了问题,显示Source not found for StandardContext.start() line: 4151,网上查找解决方案,发现可能是自带的tomcat和运行的tomcat发生冲突。 解决方原创 2012-07-11 16:04:45 · 3442 阅读 · 1 评论 -
对象转型小结
对象转型分为向上转型和向下转型两种。 在执行转型之前,一般先使用instanceof操作符判断对象是不是指定的类或者子类的实例对象,或者接口的实现类对象,否则对象转换成错误的类型,就会发生ClassCastException异常。 instanceof关键字的用法如下: obj instanceof Class原创 2012-06-28 16:57:33 · 615 阅读 · 0 评论 -
利用静态方法代替构造方法创建对象
通常我们都是通过类的构造方法来获得一个类的实例,另外一种方式则是给该类添加一个静态的方法,例如下面的方式:Java代码: public class Test{public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } } 在创建原创 2012-06-28 14:39:25 · 2954 阅读 · 2 评论 -
Java正则表达式详解
一、正则表达式基础知识我们先从简单的开始。假设你要搜索一个包含字符“cat”的字符串,搜索用的正则表达式就是“cat”。如果搜索对大小写不敏感,单词“catalog”、“Catherine”、“sophisticated”都可以匹配。也就是说:1.1 句点符号假设你在玩英文拼字游戏,想要转载 2012-06-27 21:01:43 · 604 阅读 · 0 评论 -
Java常用正则表达式
"^\d+$" //非负整数(正整数 + 0)"^\[0-9\]*\[1-9\]\[0-9\]*$" //正整数"^((-\d+)\|(0+))$" //非正整数(负整数 + 0)"^-\[0-9\]*\[1-9\]\[0-9\]*$" //负整数"^-?\d+$" //整数"^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0)"^((\[0-9翻译 2012-06-27 21:02:48 · 671 阅读 · 1 评论 -
关于MyEclipse找不到AWTUtilities的问题
JDK 6 自从update10开始 增加了透明窗体及不规则窗体功能:com.sun.awt.AWTUtilities,这样可以方便的创建透明及不规则的窗体,但是今天遇到找不到这个包的问题。找了半天,JDK换了还几个。但是还是不行,最后终于找到原因,原来Myeclipse里面自带有JDK,这里需要注意你的MyEclipse用的是自带的JDK还是你安装的JDK,如果是它自带的,那么你换几次JDK都不原创 2012-07-09 16:07:03 · 1462 阅读 · 0 评论 -
常用数据库JDBC驱动下载地址及URl用法汇总
1.Mysql 下载地址:http://www.mysql.com/products/connector/j/ 使用说明: Class.forName( "org.gjt.mm.mysql.Driver" ); cn = DriverManager.getConnection( "jdbc:mysql:/原创 2012-06-26 18:18:54 · 1846 阅读 · 0 评论 -
java变量与方法总结
数据类型:分为简单类型(原始类型)和引用类型 简单类型有8种数据类型简单类型数值型整型(整数)byte8-2^(8-1)~2^(8-1)-1short16-2^(16-1)~2^(16-1)-1int32原创 2012-06-23 19:32:57 · 767 阅读 · 0 评论 -
自定义JDBC连接池及常用连接池介绍
如果不采用连接池技术, 将导致不断创建和销毁数据库Connection, 造成性能上的损耗. 而数据库连接池技术将在池中创建一定数量的Connection, 当需要Connection时就从池中取出一个, 用完之后归还给连接池, 而不是将其销毁.自定义数据库连接池的具体步骤分析:a. 定义MyDataSource类, 实现DataSource接口, 并提供接口中定义的方法. 其中,原创 2012-08-11 12:40:55 · 7394 阅读 · 1 评论 -
Myeclipse中JDBC连接池的配置
软件版本myeclispe8.0,自带tomcat6.0.13。jdbc:mysql-connector-java-5.1.13-bin.jar第一步:建立工程。在Myeclipse中file->new->web project。因为在测试数据源(jsp)时用到了标签库,所以可以在这里选上jsdl支持,当然也可以在工程建好后右键工程文件夹->myeclipse-原创 2012-08-11 13:04:11 · 7456 阅读 · 0 评论 -
数据结构各种排序算法及其java程序实现
各种排序算法:冒择路(入)兮(稀)快归堆,桶式排序,基数排序冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序一、冒泡排序(BubbleSort)1. 基本思想: 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。2. 排序过程: 设想被排序的数组R[1..N]垂直竖立,将每个数转载 2012-09-24 19:21:48 · 3951 阅读 · 1 评论 -
Java:Socket编程学习总结
一、网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心原创 2012-10-12 16:10:31 · 5486 阅读 · 0 评论