java基础
帅葱哥
左手执剑,右手擎书。
---会写程序的诗人
展开
-
java基础---String对象为什么不能改变?
简单来说就是因为String对象是private的,里没有给出get方法,因此,我们并不能通过什么方式来改变它的值。还有一点,String里面的Filed设置的为Final。这也是它的值不能被改变的原因。那么,我们平时对一个String对象初始化赋值之后,比如说String s = “hello”;但是却可以通过s=”world”;来将s的值改变啊?其实这并不是将以前的那个s的值改变了,在原创 2016-12-16 14:26:23 · 565 阅读 · 0 评论 -
获取JAVA文件路径
由于经常需要获取文件的路径,但是比较容易忘记,每次需要总需要查询,现在把这些方式写下来,方便自己的时候也方便大家了,如果大家在下面的方法遇到什么问题,可以留言。一.Java文件获取路径方式:各种获取方式如示例代码所示:[java] view plain copy package first.second; import java.io.File;转载 2017-01-08 13:06:50 · 11258 阅读 · 0 评论 -
JAVA中的反射机制
反射,当时经常听他们说,自己也看过一些资料,也可能在设计模式中使用过,但是感觉对它没有一个较深入的了解,这次重新学习了一下,感觉还行吧! 一,先看一下反射的概念: 主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 反射是Ja转载 2017-01-06 22:38:04 · 234 阅读 · 0 评论 -
java反射详解
本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解。下面开始正文。【案例1】通过一个对象获得完整的包名和类名123456789101112131415package Reflect转载 2017-01-06 22:34:17 · 321 阅读 · 0 评论 -
java 线程同步的那些事: yield(), sleep(), wait(), await(), signal(), sginalAll()
1、sleep()使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的线程执行转载 2017-01-06 22:31:41 · 347 阅读 · 0 评论 -
深入理解Java的接口和抽象类
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 若有不正之处,请多多谅解转载 2017-01-06 22:30:10 · 215 阅读 · 0 评论 -
Java抽象类与接口的区别
很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们将仔细讨论这些话题。在讨论它们之间的不同点之前,我们先看看抽象类、接口各自的特性。 抽象类抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。以JDK中的GenericServlet为例:public abstract cl转载 2017-01-06 22:25:33 · 512 阅读 · 0 评论 -
Spring学习----Bean的装配(4)
上一节中,我们学习了bean的生命周期,可能在我们实际工作中并不能全部用到。但是知识嘛,了解的越多,能够解决的问题也就越多,我们也就越高兴。(好吧,这不是我的真心话T_T) 在这一节中,我们主要学习一下bean的装配方式。 在这里,我只介绍常用的集合的装配方式:组合、list、set、map下面是Employee.java 的代码package rogue.collection;public原创 2017-01-06 14:49:28 · 293 阅读 · 0 评论 -
Spring学习(3)
上一节中,我们深入了解了Spring中bean之间是如何进行关联的以及简单了解控制反转和依赖注入。这一节中,我们主要来说说bean。一、从applicationContext应用上下文和bean工厂中获得bean有什么区别?bean的作用域(4种)singleton:在每个Spring IOC容器中一个bean定义对应一个对象实例。(只要容器存在,那么就只有一个bean。比如说原创 2017-01-05 20:52:25 · 250 阅读 · 0 评论 -
Java中只有按值传递,没有按引用传递!
今天,我在一本面试书上看到了关于java的一个参数传递的问题: 写道 java中对象作为参数传递给一个方法,到底是值传递,还是引用传递?我毫无疑问的回答:“引用传递!”,并且还觉得自己对java的这一特性很是熟悉!结果发现,我错了!答案是:值传递!Java中只有按值传递,没有按引用传递!回家后我就迫不及待地查询了这个问题,觉得自己对java这么基础的问题都搞错实在太丢人!综合网上的描述,我大概了转载 2017-01-05 19:51:26 · 160 阅读 · 0 评论 -
Java:按值传递还是按引用传递详细解说
前天在做系统的时候被Java中参数传递问题卡了一下,回头查阅了相关的资料,对参数传递问题有了新的了解和掌握,但是有个问题感觉还是很模糊,就是Java中到底是否只存在值传递,因为在查阅资料时,经常看到有人说Java只有值传递,但有人说既有值传递,也有引用传递,对于两个观点个人觉得应该是站的角度不同而得出两个不同的说法,其实两个说法其中的原理是一样的,只要咱们懂得其中的原理,那么至于叫什么也就无所谓了,转载 2017-01-05 19:50:25 · 241 阅读 · 0 评论 -
java中形参的可变参数的定义(如String... args) .
如果有下面的一个笔试题:已知我们有如下的调用关系 logIt(”log message 1 “); logIt(”log message2”, ” log message3”); logIt(”log message4”,”log message5”,”log message6”);请问下面的答案中哪个是正确的 A. public void logIt(String * msgs) B.转载 2017-01-05 19:48:41 · 1128 阅读 · 0 评论 -
Spring学习(2)
引言: 从上一节的简单介绍中,我们知道了Spring的概念和项目的创建,并且了解了Spring是怎样工作的。在这一节中,我们要讲的内容有(1)Spring对bean关系的维护(2)ioc是什么(3)di是什么一、Spring的关系维护 我们再来创建一个类,叫做ByeService.class,并且将其作为UserService.class的一个属性,这样就将这两者人为的发生了关系。pac原创 2017-01-05 16:41:21 · 374 阅读 · 0 评论 -
Spring学习(1)
一、什么是Spring 简单来说,Spring就是一种框架容器。他可以用来配置bean并且维护bean与bean之间的关系。 我们可以用下面的层次图来表示。 二、开发一个Spring项目 我们要调用一个对象的方法。 使用传统的方法,我们都知道,就是实例化一个对象,然后直接调用即可。那么,我们用Spring来做的话,是怎样的呢?步骤: a、引入Sprin原创 2017-01-05 14:55:57 · 418 阅读 · 0 评论 -
关于TreeSet的排序问题
TreeSet支持两种排序方法:自然排序和定制排序。TreeSet默认采用自然排序。 1、自然排序TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间大小关系,然后将集合元素按升序排列,这种方式就是自然排序。(比较的前提:两个对象的类型相同)。 java提供了一个Comparable接口,该接口里定义了一个compareTo(Object转载 2017-01-04 12:10:43 · 849 阅读 · 0 评论 -
Java中的instanceof关键字
instanceof是Java的一个二元操作符,和==,>, String s = "I AM an Object!"; boolean isObject = s instanceof Object; 我们声明了一个String对象引用,指向一个String对象,然后用instancof来测试它所指向的对象是否是Object类的一个实例,显然,这是真的,所以返回true,转载 2017-01-04 12:06:01 · 221 阅读 · 0 评论 -
java克隆技术
一、为什么要实现克隆为什么需要克隆对象?直接new一个对象不行吗? 首先我们需要明白克隆的对象可能不是新建出来的对象,它包含一些已经修改过的属性(比如修改成员变量的值),而new出来的对象的属性都还是初始化时候的值,所以当需要一个新的对象来保存当前对象的“状态”就靠clone方法了。那么我把这个对象的临时属性一个一个的赋值给我新new的对象不也行嘛?可以是可以,但是过程十分繁琐。转载 2017-08-01 23:08:50 · 413 阅读 · 1 评论