Java基础技术
文章平均质量分 54
YJCK
我热衷探索的技术方向:软件开发方法论、分析模式、企业级应用开发、富客户端开发。愿意与广大Java爱好者共同分享学习心得;愿意与大家探讨各种问题,共同提高。
展开
-
有趣的逻辑思维训练编程题
在网上偶尔看到下面的题目(做了一些小小的改动): 大厅里有100盏灯,每盏灯都编了号码,分别为1-100。每盏灯由一个开关来控制。(开关按一下,灯亮,再按一下灯灭。开关的编号与被控制的灯相同。)开始时,灯是全灭的。现在按照以下规则按动开关。第一次,将所有的灯点亮。第二次,将所有2的倍数的开关按一下。第三次,将所有3的倍数的开关按一下。以此类推。第N次,将所有N的倍数的开关按一下。问第N次(原创 2010-02-20 10:09:00 · 9811 阅读 · 6 评论 -
Java package的概念及类加载与运行
<br />在了解任何其它的语法之前,我们首先要理解,如何组织你的JAVA源文件。我们以后将编写越来越多的JAVA源文件,难道把它们全部放到一个目录下面吗?当然不是这样的。在源代码变得混乱不可维护之前,我们首先要了解代码的组织方法。我们可以利用JAVA中“包(package)”的概念来组织你的代码。Package这种概念实际上跟JAVA中的安全模型有关,但安全模型不是我们现在要了解的,这些东西以后在适当的时候,我会跟大家讲清楚的。现在,我们理解“包”这种概念,它就是一个目录树结构。<br /> <br />原创 2010-12-25 16:48:00 · 3584 阅读 · 1 评论 -
IOC/DI与AOP概念的理解
所谓控制反转,即依赖关系的获取方式(controll)反过来了。所谓依赖,从程序的角度看,就是比如A要调用B的方法,那么A就依赖于B,反正A要用到B,则A依赖于B。所谓反转(inversion),你必须理解如果不反转,会怎么着,因为A必须要有B,才可以调用B,如果不反转,意思就是A主动获取B的实例:B b = new B(),这就是最简单的获取B实例的方法(当然还有各种设计模式可以帮助你去获得B的实例,比如工厂、Locator等等),然后你就可以调用b对象了。 所以,不反转,意味着A要主动获取原创 2010-12-30 09:13:00 · 19797 阅读 · 9 评论 -
Struts2课堂现场视频专辑[高清],25个视频
专辑地址:https://ke.qq.com/course/package/14502?tuin=4918ea321. 学习Struts2的前提条件2. Struts2结构图3. 入门级例子引入依赖包在web.xml中增加过滤器配置编写Action类增加Struts2的配置文件编写JSP访问Action...原创 2011-02-07 12:04:00 · 7747 阅读 · 2 评论 -
Hibernate现场教学视频【高清】,67个视频
专辑地址:https://ke.qq.com/course/package/14502?tuin=4918ea32重点在于:Hibernate映射规则Hibernate最佳实践原创 2011-02-07 12:29:00 · 7077 阅读 · 5 评论 -
Spring现场教学视频【高清】,26个视频
专辑地址:https://ke.qq.com/course/package/14502?tuin=4918ea32IOC、DI、什么是关注点?如何分离关注点?如何通过静态代理分离关注点?如何通过JDK动态代理分离关注点?如何通过Spring自动创建静态代理分离关注点?SSH的集成等等...原创 2011-02-07 12:34:00 · 8772 阅读 · 6 评论 -
Servlet和JSP入门视频【高清】,32个视频
专辑地址:https://ke.qq.com/course/package/14502?tuin=4918ea32servlet和JSP必须掌握的入门技术原创 2011-02-07 12:56:00 · 6594 阅读 · 1 评论 -
网络飞车游戏项目视频【高清】,41个视频
专辑地址:https://ke.qq.com/course/package/14502?tuin=4918ea32本项目是JavaSE阶段,用于检验与熟悉JavaSE的API、以及初步运用面向对象思维方式来解决问题而特设的项目。项目基本囊括了 JAVA SE阶段的一些重难点,对于初学者来说,也许它不是那么简单,但是当你选择了编程这条路之后,你不能期望你以后工作中面对的问题都...原创 2011-02-07 12:59:00 · 6205 阅读 · 3 评论 -
Java与面向对象概述
什么叫面向对象(Object Oriented,简称OO)?<br />你知道了JAVA虚拟机、编写了那么多的代码、也知道怎么编译、运行JAVA代码了,如果就到此为止,你就还没有窥探到JAVA的门道!换句话来讲,还没开始学习JAVA!<br /> <br />因为JAVA是面向对象的编程语言(OOP:Object-oriented Programming),我们到现在为止,还没有怎么接触面向对象的概念,所以,就等于还没开始学习JAVA!<br /> <br />顾名思义,所谓面向对象,就是一切以对象为核心!原创 2010-12-25 16:54:00 · 1629 阅读 · 1 评论 -
《深入Java虚拟机学习笔记》- 第一、二章 Java体系结构和平台无关性
Java有两种类型的类装载器:启动类装载器和用户定义的类装载器。启动类装载器是虚拟机实现的一部分,通常用C/C++语言来编写(Java虚拟机就是用C/C++语言编写的)。启动类装载器主要是装载JAVA API核心类库。用户定义的类装载器则是用JAVA语言编写的,因此,我们可以定义自己的类装载器,在程序运行期间,根据我们的需要来装载类。原创 2010-12-25 15:39:00 · 1473 阅读 · 0 评论 -
请实现一个计算器
感谢某个学生给我提供这样一个非常有意思的问题: 输入一个字符串表达式,比如:(3+4-1)*38/(300-96),请编程计算其结果。 大家可以充分发挥。目标就是容易扩展。比如可以支持更多类型的计算(平方、开方等等) 这里面关键的问题就是如何把表达式转换为一颗二叉树,只要二叉树构建出来了,那么计算就是很简单的事情了。原创 2010-02-20 10:25:00 · 1267 阅读 · 1 评论 -
《深入Java虚拟机学习笔记》- 第19章 方法的调用与返回
在一个类中,如果不定义构造方法,则编译器会默认生成一个无参构造方法;l 在构造方法中,如果想要调用其他的构造方法(用this调用本类的其它构造方法,用super调用父类的构造方法),必须放在构造方法的第一行;在构造方法中,如果不显式地调用其它的构造方法,则默认在执行构造方法中任何代码之前,会先调用父类的默认无参构造方法;l 注意,在子类的构造方法中,必须调用父类的构造方法(不管是隐式的调用,还是显式的调用,也不管调用的是无参构造方法,还是有参构造方原创 2010-12-25 16:17:00 · 969 阅读 · 0 评论 -
BasicStroke的用法
1. 基本概念<br />在JAVA 2D开发中,BasicStroke用于定义线条的特征,我们可以调用Graphics2D类中的setStroke方法来将新创建的BasicStroke对象设置进去。BasicStroke的构造方法如下所示:<br /> <br /><br /> <br />对图形的一些专业名词不熟悉的程序员来说,想要根据API说明文档来理解这个方法的使用,实在有点过于困难了,所以,在这里整理了一下,便于大家理解。<br /> 2. 构造方法参数说明2.1 width<b原创 2010-12-25 17:03:00 · 24384 阅读 · 8 评论 -
Java编码问题总结
编码与解码<br />电脑只能处理011001这样的二进制数字,字符是日常生活中我们使用的符号,为了电脑能够存储、传输和展示字符,所以,我们需要把字符转换为0110000这样的二进制码。这就是所谓编码。相反,把011000这样的二进制码转换为字符的过程就是解码!JAVA里,char表示一个字符,String表示字符串!<br /> <br />具体把哪个字符映射到哪个二进制串上,是由国家(国家标准)、国际组织(国际标准)等决定的!<br /> <br />一般不用二进制串来表示某个字符的编码(因为写起来、阅原创 2010-12-25 17:09:00 · 1834 阅读 · 0 评论 -
《Java虚拟机学习笔记》- 第三章 安全
1. 第三章 安全<br />Java在一开始的时候,侧重于互联网的应用,即applet,applet是一段JAVA程序,这个程序运行在浏览器中,它来源于网络。为了避免这些来源于其它地方的代码不对本地机器造成伤害,JAVA提供了基本沙箱来运行这些程序。沙箱保证了applet不能执行下面的操作:<br />读写硬盘<br />开启到宿主机的socket链接<br />创建新的进程<br />装载新的动态链接库<br /> 1.1 1.0版本的基本沙箱<br /> <br />组成沙箱的基本组件:<b原创 2010-12-25 15:46:00 · 1049 阅读 · 0 评论 -
《深入Java虚拟机学习笔记》- 第5章 Java虚拟机
Java程序中初始的main()方法,作为该程序初始线程的起点。任何其它的线程,都是有这个初始线程启动的。在JAVA虚拟机内部,有两种类型的线程:守护线程和非守护线程(实时线程)。比如执行垃圾收集任务的线程,就是一种守护线程。我们也可以把我们自己创建的线程标记为守护线程。初始线程,不是守护线程。当虚拟机中所有的实时线程都结束的时候,虚拟机将自动退出(当然,也可以调用Runtime或System类中exit()方法来退出虚拟机)如果main()方法执行完毕返回,而且在其中并没有启动其它的实时线程,原创 2010-12-25 16:02:00 · 1198 阅读 · 0 评论 -
《深入Java虚拟机学习笔记》- 第10章 栈和局部变量操作
基本指令分析:规律:store表示弹出操作数栈(操作数栈是一个栈)顶的数据放入局部变量区store_x表示弹出操作数栈顶的数据放入局部变量区索引为x的地方load表示将局部变量区中某个位置(即某个索引,因为局部变量区是一个数组)的局部变量压入操作数栈load_x表示将局部变量区中x位置的局部变量压入操作数栈astore表示弹出操作数栈顶的对象引用,并放入局部变量区astore_x也跟前面有相同的规则aload表示将局部变量区中某个位置的对象引用压入操作数栈aload_x也原创 2010-12-25 16:13:00 · 1304 阅读 · 0 评论 -
Java技术概览
Java技术平台的三大类别:JavaSE,JavaEE,JavaME;JRE与JDK;SUN JDK发布历史;JDK/JRE/JVM/JAVA.EXE/JAVAC.EXE;private JRE与public JREclient JRE与server JRE原创 2010-12-25 16:32:00 · 1783 阅读 · 0 评论 -
不好意思,最近忙别的事,博客好久没更新了
有一位同学问了一个问题,也是拖了好几天,才得以抽出时间回答。 以前一直忽略了给大家说明mysql中MyISAM和InnoDB有一个重要的区别就是MyISAM是不支持事务的。这位同学的问题就是基于SSI创建的项目,所有配置和JAVA代码都是正常的,但是在抛出异常的时候,就是不能回滚事务,原因就是他使用的创建表的语句使用了MyISAM: CREATE TABLE `user` (原创 2011-06-18 19:27:00 · 4758 阅读 · 0 评论