java基础知识及深入理解
文章平均质量分 67
JAVA之迷_
大家好,欢迎来到我的博客!
展开
-
到底创建了几个String对象?
到底创建了几个String对象?标签: 堆栈使用 对象创建 分类: 开发技术关键字: java 面试题 string 创建几个对象作者:臧圩人(zangweiren)网址:http://zangweiren.javaeye.com>>>转载请注明出处!我们首先来看一段代码:Java代码String str=new String("abc");原创 2014-04-26 19:14:28 · 553 阅读 · 0 评论 -
MVC3 项目总结
验证 Validation多样化验证规则 http://www.cnblogs.com/xling/archive/2012/07/11/2587002.html最常见的验证方式是:在实体的属性上加 特性(Attribute) 的方式来完成基本的数据验证. 比如 Required, StringLength, Range 等. 为了保持实体类的POCO ( Plain Ol转载 2014-04-27 19:12:25 · 689 阅读 · 0 评论 -
内部类
引用可以表示出一对一等关系this可以调用奔雷中的其他构造方法,但是要求至少有一个构造方法没有使用this(),而且调用时候this()要放在构造方法的首行。static可以声明为全局变量,所有对象共同拥有。构造方法私有化,术语单例设计,一个类只能产生一个实例化对象。如果将构造方法私有化之后,外部将无法产生新的实例化对象。静态块每次只原创 2014-03-03 23:47:06 · 609 阅读 · 0 评论 -
返回空的list集合*彻底删除删除集合*只是清空集合
---------- 要求返回空的List集合-----------List allList = Collections.emptyList();// 返回空的List集合allList.add("Xiao Ran Li");---------- 将集合里面的内容清除-----------list 里面有clear()方法---------- 将集合删除----原创 2014-03-06 11:27:11 · 2778 阅读 · 0 评论 -
事物,连接池
一、事物 1.事物指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部不成功。 2.Mysql中的事物默认是自动开关的 3.数据库开启事务命令 3.1start transaction:开启一次事物。该语句后面的sql语句都处于同一次事务中 3.2rollback:回滚。事务结束(不明白) 3.3co原创 2014-03-09 02:59:18 · 743 阅读 · 0 评论 -
集合类整理
分享到一键分享QQ空间新浪微博百度云收藏人人网腾讯微博百度相册开心网腾讯朋友百度贴吧豆瓣网搜狐微博百度新首页QQ好友和讯微博更多...百度分享集合类:Collection接口:*一个独立的元素的序列(单列,即一个位置放一个元素)*Collection接口下主要分为List集合和Set集合*List集原创 2014-03-14 09:22:48 · 707 阅读 · 0 评论 -
char 与 String 相等比较
这是一个相当2 相当基础 相当没有意义的帖子;但今天因为这个问题引发了一个bug。小细节也很重要!!! char a='1';// char b='2dsf'; //char 表示单个字符 char c=1; //不需要单引号也能表示// System.out.p原创 2014-03-30 19:26:18 · 8630 阅读 · 0 评论 -
eclipse调试的方法和技巧
eclipse调试图标所代表的含义:Step into 单步进入-将进入执行的方法内部继续执行。Step over 单步前进-执行下一步。Step return – 单步退出-跳出正在执行的方法。Drop to frame – 跳到正在执行的方法的第一句代码。Resume : 执行到下一个断点。Terminate:停止调试。程序将停止运行。原创 2014-04-03 20:12:13 · 2953 阅读 · 0 评论 -
最简单的单例模式
如果一个类始终只能创建一个实例,则这个类被称为单例类。 在一些特殊的场景下,要求不允许自由创建该类的对象,而是只允许为该类创建一个对象。为了避免其他类自由创建该类的实例,我们把该类的构造器使用private修饰,从而把该类的所有构造器隐藏起来。 根据良好封装的原则:一单把该类的构造器隐藏起来,则需要提供一个public方法作为该类的访问点,用于创建该类的对象,且该方法必须使用s原创 2014-04-03 20:14:53 · 2231 阅读 · 0 评论 -
java基础语法(一)
java基础语法(一)1.类是一种抽象的概念,对象是类的一种具体表示形式,是具体的概念。先有类,然后由类来生成对象(Object)。对象又叫做实例(Instance)。2.类由两大部分构成:属性以及方法。属性一般用名词来表示,方法一般用动词来表示。3.如果一个java源文件中定义了多个类,那么这些类中最多只能有一个类是public的,换句话说,定义的多个类可以都不是原创 2014-04-11 11:52:33 · 505 阅读 · 0 评论 -
java基础语法(二)--单列模式
java基础语法(二)--单列模式/** * 功能:单列模式 * @author Administrator * */public class SingletonTest{ public static void main(String[] args) { Singleton test1 = Singleton.getInstance();原创 2014-04-11 11:53:00 · 623 阅读 · 0 评论 -
【面试题001】类型转换关键字,空类对象模型,拷贝构造函数,赋值运算符函数
一,在C++中,有哪4个与类型转换相关的关键字? 好多书籍,推荐使用类型转换的关键字,但是c风格的类型转换操作,确实很方便,但是不易掌握。1、const_cast号称唯一具有常量性移除的转型操作符,这个说法实在很废话,不解释。平时几乎没有用过,遇到需要这个关键字的时候,都是直接修改了接口的类型,也不会去用这个关键字,一般来说老接口设计有问题啊。明明是const的,非得原创 2014-04-10 20:19:35 · 580 阅读 · 0 评论 -
第15章-输入/输出 --- File类
(一) Java的IO通过java.io包下的类和接口来支持,在java.io包下主要包括输入、输出两种IO流。 每种输入、输出流又分为字节流和字符流两大类: (1)字节流以字节为单位来处理输入、输出操作 (2)字符流则以字符来处理输入、输出操作 除此之外,Java的IO流使用了一种装饰器设计模式,它将IO流分成底层节点流和上层处理流,其中节点流用于和底层的物原创 2014-04-11 07:28:01 · 569 阅读 · 0 评论 -
java日期操作常用工具
java日期操作常用工具package com..util;import java.sql.Timestamp;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class DataUtil { /** * 功原创 2014-04-11 11:41:15 · 542 阅读 · 0 评论 -
重构 改善既有代码的设计:代码的坏
以下内容来自重构 改善既有代码的设计>>一、什么是重构所谓重构(Refactoring)是这样一个过程:在不改变代码外在行为的前提下,对代码做出修改以改进程序的内部结构。重构是一种经千锤百炼形成的有条不紊的程序整理方法,可以最大限度地减少整理过程中引入错误的几率。从本质上说,重构就是在代码写好之后改进它的设计。二、什么样的代码需要重构哪些代码需要重构呢?重构 改善既有代码的设计>>原创 2014-04-25 19:19:33 · 711 阅读 · 0 评论 -
J2SE-程序执行与内存图
全局程序运行内存图基础数据类型:byte,short,int,long(整数) float,double(浮点) -- 数值 char --字符型 boolean原创 2014-04-25 19:23:23 · 628 阅读 · 0 评论 -
JAVA堆栈的区别
1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编原创 2014-04-29 18:20:41 · 522 阅读 · 0 评论 -
简单工厂、工厂方法和抽象工厂的学习笔记
简单工厂理解:简单工厂模式的工厂类一般是使用静态方法,通过接收的参数不同来返回不同的对象的实例,不修改代码的话,是无法扩展的。 先定义产品类,它们需要实现同一接口或继承自同一抽象类。 //产品接口(或抽象类) public interface IClassDo { void doSomething();原创 2014-04-30 16:16:57 · 647 阅读 · 0 评论 -
内存分配方式
内存分配方式有三种:(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3) 从堆上分配,亦称动态内存分配。程原创 2014-03-13 22:07:55 · 711 阅读 · 0 评论 -
常见Map 及 ArrayList 是否有序总结
常见Map 及 ArrayList 是否有序总结说明:此处的排序 是指:1: 往集合中插入元素的顺序与遍历元素的顺序的关系;2: 往对象中插入元素否会根据元素的大小排序 public class MapSortTest { public static void main(String[] args)原创 2014-03-30 17:54:48 · 3104 阅读 · 0 评论 -
java中hashcode()和equals()的详解
今天下午研究了半天hashcode()和equals()方法,终于有了一点点的明白,写下来与大家分享(zhaoxudong 2008.10.23晚21.36)。 1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。 equals()方法在object类中定义如下: public boolean equals(Object obj) { ret原创 2014-04-03 20:17:31 · 485 阅读 · 0 评论 -
Hibernate的介绍
1.什么是Hibernate? 首先,Hibernate是数据持久层的一个轻量级框架。数据持久层的框架有很多比如:iBATIS,myBatis,Nhibernate,Siena等等。 并且Hibernate是一个开源的orm(object relations mapping)框架,提供了查询获取数据的方法,用面向对象的思想来操作数据库,节省了我们原创 2014-04-06 16:57:16 · 558 阅读 · 0 评论 -
java内存分配
Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域: ◆寄存器:我们在程序中无法控制 ◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 ◆堆:存放用new产生的数原创 2014-04-24 20:03:52 · 434 阅读 · 0 评论 -
Java初始化顺序
实例变量的实例化 三个地方:定义实例变量指定初始值非静态初始化块中对实例变量指定初始值构造器中对实例变量指定初始值 其中,1、2中方式比第三种方式更早执行,1、2种执行顺序与它们在源程序中的排列顺序相同。 类变量的初始化 两个地方:定义是指定静态初始化块中指定 这两种方式的执行顺序与它们在源程序中的排列顺序相同 publ原创 2014-04-24 19:58:01 · 665 阅读 · 0 评论 -
《深入理解JAVA虚拟机》笔记1
java程序运行时的内存空间,按照虚拟机规范有下面几项:(1)程序计数器 指示下条命令执行地址。当然是线程私有,不然线程怎么能并行的起来。 不重要,占内存很小,忽略不计。(2)方法区 这个名字很让我迷惑。这里面装的其实是程序运行需要的类文件,常量,静态变量等。作用容易明白。 程序运行时,执行代码先得装入内存,当然java好像是在第一次用到时才原创 2014-04-24 19:54:44 · 520 阅读 · 0 评论 -
第15章-输入/输出 --- 处理流的用法
第15章-输入/输出 --- 处理流的用法 (一)处理流的用法 处理流可以隐藏底层设备上节点流的差异,并对外提供更加方便的输入/输出方法,让程序员只需关心高级流的操作。 我们使用处理流的典型思路是,使用处理流来包装节点流,程序通过处理流来执行输入/输出功能,让节点流与底层的I/O设备、文件交互。 识别处理流非常简单,只要流的构造器参数不是一个物理节点,而是已原创 2014-04-11 07:27:21 · 705 阅读 · 0 评论 -
Java的运行原理
在Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode)(class文件的内容),它不面向任何特定的处理器,只面向虚拟机。每一种平台的解释器是原创 2014-04-25 19:24:08 · 550 阅读 · 0 评论 -
内存泄露和内存溢出
一、 内存泄露 内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏与许多其他问题有着相似的症状,并且通常情况下只能由那些可以获得程序源代码的程序员才可以分析出来。然而,有不少人习惯于把任何不需要的内存使用的增加描述为内存泄漏,即使严格意义上来原创 2014-03-13 21:53:47 · 798 阅读 · 0 评论 -
内存分配问题
程序运行时,特别要注意的是内存的分配。有六个地方都可以保存数据:寄存器这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部。然而,寄存器的数量十分有限,所以寄存器是根据需要由编译器分配。我们对此没有直接的控制权,也不可能在自己的程序里找到寄存器存在的任何踪迹。堆栈驻留于常规RAM(随机访问存储器)区域,但可通过它的“堆栈指针”获得处理的直接支持。堆栈指针若向下移,会创建新的内存;原创 2014-03-29 12:30:34 · 562 阅读 · 0 评论 -
JAVA的面向对象编程--------课堂笔记
面向对象主要针对面向过程。面向过程的基本单元是函数。什么是对象:EVERYTHING IS OBJECT(万物皆对象)所有的事物都有两个方面:有什么(属性):用来描述对象。能够做什么(方法):告诉外界对象有那些功能。后者以前者为基础。大的对象的属性也可以是一个对象。为什么要使用面向对象:首先,面向对象符合人类看待事物的一般规律。对象的方法的实现细原创 2014-04-08 18:25:36 · 574 阅读 · 0 评论 -
j2EE经典面试题
1. hibernate中离线查询去除重复项怎么加条件?dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); 2. http协议及端口,smtp协议及端口http:超文本传输协议 端口 80 smtp:简单邮件传输协议 端口25 3. 编写程序,完成文件复制功能 4. Servlet创建过程及原创 2014-04-09 23:06:11 · 15970 阅读 · 0 评论 -
Struts,Spring,Hibernate三大框架的
1.Hibernate工作原理及为什么要用?原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Session 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用: 1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hi原创 2014-04-24 20:09:21 · 569 阅读 · 0 评论 -
String内存分配
Java 把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java 会自动释放掉为该变量分配的内存空间,该内存空间可以立即被另作它用。堆内存用来存放由 new 创建的对象和数组,在堆中分配的内存,由 Java 虚拟机的自原创 2014-04-24 20:03:01 · 681 阅读 · 0 评论 -
第8章-Java集合 --- 概述
第8章-Java集合 --- 概述(1)Java集合类是一种特别有用的工具类,可以用于存储数量不等的多个对象,并可以实现常用的数据结构,如 栈、队列等。(2)Java集合大致可分为Set、List、和Map三种体系,其中Set代表无序、不可重复的集合;List代表有序、重复的集合;Map代表具有映射关系的集合。(3)集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。(4)原创 2014-04-11 07:23:20 · 649 阅读 · 0 评论 -
Java中的泛型方法
http://www.cnblogs.com/iyangyuan/archive/2013/04/09/3011274.html转载 2014-04-25 00:40:44 · 502 阅读 · 0 评论 -
java中的泛型方法
J 泛型是什么意思在这就不多说了,而Java中泛型类的定义也比较简单,例如:public class Test{}。这样就定义了一个泛型类Test,在实例化该类时,必须指明泛型T的具体类型,例如:Test t = new Test();,指明泛型T的类型为Object。 但是Java中的泛型方法就比较复杂了。 泛型类,是原创 2014-04-25 00:48:16 · 499 阅读 · 0 评论 -
面试题-一个for循环输出一个棱形
用一个for循环输出以下棱形 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *原创 2014-05-03 22:03:52 · 1002 阅读 · 0 评论 -
迭代器模式
迭代器模式提供了一种方法顺序访问一个聚合对象中的各个元素,而不暴露其内部的表示。迭代模式与组合模式要点: 1.迭代器允许访问聚合的元素,而不需要暴露它的内部结构 2.迭代器将遍历聚合的工作封装进一个对象中 3.当使用迭代器的时候,我们一来聚合提供遍历 4.迭代器提供了一个通用的接口,让我们遍历聚合的项时,就可以使用多态原创 2014-03-06 10:17:06 · 541 阅读 · 0 评论 -
HashMap和Hashtable的区别
导读: 1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。2 HashTable是线程安全的一个Collection。HashM原创 2014-03-13 21:44:07 · 592 阅读 · 0 评论 -
线程,进程.程序,多线程区别
线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源(3)线程是处理器调度的基本单位,但进程不是.4)二者均可并发执行.进程和线程都是由操作系统所体会的程序运行的基本单元,系原创 2014-03-14 09:53:46 · 682 阅读 · 0 评论