Java编程的守护
Java基础及相关问题
保护大苹果和橙子
这个作者很懒,什么都没留下…
展开
-
Java中的建造者模式
11.1 变化是永恒的 又是一个周三,快要下班了,老大突然拉住我,喜滋滋地告诉我:“牛叉公司很满意我们做的模型,又签订了一个合同,把奔驰、宝马的车辆模型都交给我们公司制作了,不过这次又额外增加了一个新需求:汽车的启动、停止、喇叭声音、引擎声音都由客户自己控制,他想什么顺序就什么顺序,这个没问题吧?”  ...转载 2018-04-09 15:38:41 · 626 阅读 · 1 评论 -
Java中的ArrayList和LinkedList区别和联系
在Java集合中,ArrayList和LinkedList是继承自List接口实现数据存储; ArrayList基于动态数组形式; LinkedList基于双向链表形式; 针对ArrayList:ArrayList底层实现是基于数组的,因此对指定下标的查找和修改比较快,但是删除和插入操作比较慢。构造ArrayList时尽量指定容量,减少扩容时带来的数组复制操作,如果不知道...原创 2018-04-08 11:25:44 · 270 阅读 · 1 评论 -
Map与HashMap,Hashtable,HashSet的区别
前言:最近在整理他人关于面试中,碰到的问题,这些问题基本上是不注意不深究的话,是完全不知道,因此参考他人的博客,以及自己亲自的测试,总结了这一片博客内容。HashTable和HashMap区别区别一:继承的父类不同 Hashtable继承自Dictionary类,而Hash...转载 2018-04-09 14:05:27 · 653 阅读 · 0 评论 -
Java编码代码优化(一)
Java编码中的优化:(避免未知错误)优化的目的: 1. 提高代码的执行效率; 2. 减少代码的体积;本文针对优化策略详解:1. 尽量使用指定类、方法的final修饰符: 带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以被继承,为方法指定f...原创 2018-03-30 13:32:44 · 256 阅读 · 1 评论 -
Java编程代码优化(二)
接着上一节,以下为剩余21个优化策略:22. 程序运行过程中避免使用反射: 关于,请参见反射。反射是Java提供给用户一个很强大的功能,功能强大往往意味着效率不高。不建议在程序运行过程中使用尤其是频繁使用反射机制,特别是Method的invoke方法,如果确实有必要,一种建议性的做法是将那些需要通过反射加载的类在项目启动的时候通过反射实例化出一个对象并放入内存—-用户只关心和对端交互的时候获...原创 2018-03-30 13:36:29 · 219 阅读 · 2 评论 -
关于数组/链表/栈/队列的形象解释
“栈”: 我是一个栈,先来跟你介绍一下我的家族,我的家族是一个很古老的家族,家族成员很多,外界称呼我们这个家族为数据结构。我们是计算机世界中存储和组织数据的。数据结构家族在计算机世界中是至关重要的,因为我们家族功能的强大,现代编程语言及其API中都有我们家族成员的身影。 我的家族是一个庞大的家族。家族中也有几大分支,比如说树、图、堆、散列表等。各个分支都有不同的能力,所以很多人选择适...原创 2018-03-28 09:41:49 · 1297 阅读 · 1 评论 -
Java中的集合详解
一、集合与数组数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。二、层次关系如图所示:图中,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。但是却让其被继承产生了两...转载 2018-03-22 10:21:09 · 311 阅读 · 0 评论 -
Java中的volatite关键字详解
Java中的volatite关键字:(可见性)1. Java中的内存模型: (1) 可见性:使用volatite、sychronized和final来操作可见性 指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。(volatite关键字修饰的对象) (2) 原子性:使用sychronized在lock、unlock来操作原子性 举例:a = 0;(原...原创 2018-03-21 16:46:55 · 1785 阅读 · 1 评论 -
Java中的集合解析
Java中的集合集合均实现了Collection根接口 1. list接口(有序,可重复):子类ArrayList(非同步、线程不安全)和Vector(同步、线程安全); (ArrayList(基于动态数组)与LinkedList(基于链表)在使用上相同,删改用后者) 2. set接口(无序,不能重复):子类HashSet(无序)和TreeSet(有序,二叉树排序)Map集合 ...原创 2018-03-21 16:49:55 · 182 阅读 · 0 评论 -
java传递参数的两种方式
Java中没有指针,所以也没有引用传递了,仅仅有值传递不过可以通过对象的方式来实现引用传递 类似java没有多继承 但可以用多次implements 接口实现多继承的功能 值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。 引用传递:也称为传地址。方法调用时,实际参数的引...转载 2018-03-21 21:09:54 · 1471 阅读 · 0 评论 -
Java基础面试集合(一)
一.Java传递参数的两种方式: 1. 值传递:(传值),八种基本数据类型和String(final) 2. 引用传递:(传地址),其余复合类型接口(数组、类和接口) 3. 理解:针对Java参数,无论是原始类型还是引用类型,传递的都是副本: (1) 原始类型:传入的是副本(值),副本的值改变不会影响原始的值; (2) 引用类型:传入的是副本(地址),...原创 2018-03-21 17:14:07 · 306 阅读 · 1 评论 -
线程安全和线程不安全
线程安全:1. 概念:提供数据访问保护,多线程访问时,采用了锁机制,当线程访问数据时,进行保护,直至访问完毕后,其他线程才能访问。(不会出现数据污染和不一致)2. 关键:多个线程并发操作时,修改某个变量的值,不会出错;3. 目的:在单位时间内某个线程操作的是同样的数据4. 锁机制:synchronized或lock对象,使用了该关键字会降低性能 线程不安全:1. 概念:不提供数据访问保护(有可...原创 2018-03-21 09:02:35 · 231 阅读 · 2 评论 -
Java中http的GET和POST请求详解
Java中http的GET和POST请求详解1. http get/post方法(使用传统的URL connection方法,JDK自带): (1) GET请求:(向服务器发送访问数据的请求,从而获取数据),(类似数据库中的select操作),(不会修改数据,产生 副作用),(数据量小,安全性低),(默认); GET方法测试: (2) POST请求:(向服务器发送数原创 2018-02-06 15:57:29 · 4973 阅读 · 3 评论 -
java String字符串操作笔记
string操作(字符串):1)数组相关:length()(长度)、toCharArray(将任意字符串转换为一个char数组)2)字母相关:charAt(index),得到index位置的字符。indexOf(char ch),默认取得第一个ch的下标,如果没有则返回-1.lastIndexOf(char ch)最后一个出现的位置。 toLowerCase(String str)、toUpper...转载 2018-01-09 10:40:32 · 247 阅读 · 1 评论 -
java中的static重点笔记
1. static说明: “全局”或“静态”(伪全局) 可以修饰成员变量、成员方法、代码块; 2. Static变量(静态变量):(只在类初始加载时被初始化一次,只有一个副本,JVM只为它分配一次内存,可被类中所有对象共享) (1) 访问:类访问、对象调用 Class Person(){ public static int count = 0; p原创 2018-02-02 22:53:01 · 216 阅读 · 1 评论 -
Java中的内存分配机制
(分配和释放问题)1. 与C++的对比: (1) C++:被分配的对象,不使用后,需要人工手动释放(使用析构函数) (2) Java:垃圾回收gc动态回收(若收不了:内存泄露->人工置null)2. Java中的8种数据类型: int、char、short、long、byte、float、double、boolean3. Java内存区域: (1) 静态存储区域:全原创 2018-02-03 11:16:54 · 350 阅读 · 1 评论 -
java 传递参数的两种方式
Java中没有指针,所以也没有引用传递了,仅仅有值传递不过可以通过对象的方式来实现引用传递 类似java没有多继承 但可以用多次implements 接口实现多继承的功能 值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。 引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的转载 2018-02-07 10:06:03 · 235 阅读 · 1 评论 -
Java中的访问修饰符
1. Java中的访问修饰符 Java面向对象的基本思想之一是封装细节并且公开接口。Java语言采用访问控制修饰符来控制类及类的方法和变量的访问权限,从而向使用者暴露接口,但隐藏实现细节。访问控制分为四种级别: (1)public: 用public修饰的类、类属变量及方法,包内及包外的任何类(包括子类和普通类)均可以访问; (2)protected: 用protect原创 2018-02-07 10:11:15 · 253 阅读 · 1 评论 -
Java中的工厂模式详解
Java中的工厂模式:(1) 核心思想:工厂模式相当于创建实例对象new(效果一致),但是工厂模式具有更大的可扩展性和少的修改量(类中写别的类,好调用);更好的封装,降低程序之间的耦合程度。(2) 关注焦点:无论什么工厂模式,不用刻意关注其细节,只要能够解决需求即可,只关心程序的耦合度下降了就可以。造车为例:(3) 简单工厂模式(静态工厂模式):将造车行为放入到工厂里,客户想要产品原创 2018-02-07 19:46:03 · 750 阅读 · 1 评论 -
java设计模式中的单例模式问题
单例模式: (1) 目的:保证某个类中只有一个实例存在;(管理器和控制器) (2) 三大特点: ① 线程安全; ② 延时加载; ③ 序列化和反序列化; (3) 优点:避免实例对象的重复创建(可能是代码最少的模式,但是要慎用) (4) 恶汉模式: ① 实现方法://恶汉模式:无无论需不需要,我都实例化(调用构造方法),以备调用class singleEHan{ //创建静态实例 pri...原创 2018-02-08 20:30:45 · 240 阅读 · 2 评论 -
浅谈“面向对象”和“类与对象”
面向对象简述:1. 面向对象更加贴近生活; Has A(描述事物的属性和行为) Is A(说明了事物的类属) 抽象、封装、继承、多态 类与对象:1. 类是抽象的,而对象是具体的; 即类描述的一类对象的属性和行为; 而对象是根据所属类模板创造出来实实在在的事物;2. 数据类型来说: (1) 基本数据类型:int/short/long/char/double/byt...原创 2018-02-28 21:41:14 · 198 阅读 · 1 评论 -
Java:浅析I/O模型
Java:浅析I/O模型 1. 什么同步,什么事异步?同步和异步的概念出来已经很久了,网上有关同步和异步的说法也有很多。以下是我个人的理解:同步就是:如果有多个任务或者事件要发生,这些任务或者事件必须逐个地进行,一个事件或者任务的执行会导致整个流程的暂时等待,这些事件没有办法并发地执行;异步就是:如果有多个任务或者事件发生,这些事件可以并发地执行,一个事件或者任务的执行不会导致整个流程的暂时等待。...原创 2018-03-07 20:01:16 · 205 阅读 · 5 评论