Java
小猴小猴
何妨吟啸且徐行
展开
-
Java数据类型
Java数据类型:基本数据类型 数值型 整数型(byte,short,int,long)浮点型 (float,double)字符型(char)布尔型 (boolean)引用数据类型 类(class)接口(interface)数组(Array)原创 2017-04-05 17:52:40 · 346 阅读 · 0 评论 -
Java内存模型
Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java内存模型定义了多线程之间共享变量的可见性以及...转载 2018-07-12 15:40:25 · 131 阅读 · 0 评论 -
Java反射机制
一、反射机制概述Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法。这种在运行时动态的获取信息以及动态调用对象的方法的功能称为Java 的反射机制。Class 类与java.lang.reflect 类库一起对反射的概念进行了支持...原创 2018-08-06 15:16:34 · 140 阅读 · 0 评论 -
Spring IOC和AOP
众所周知,Spring的核心特性就是IOC和AOP,IOC(Inversion of Control),即“控制反转”;AOP(Aspect-OrientedProgramming),即“面向切面编程”。参考书《Spring In Action》,下面分享一下我对这两大特性的个人理解。IOC:IOC,另外一种说法叫...原创 2018-08-06 16:29:02 · 199 阅读 · 0 评论 -
Java中XML的四种解析方式
XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。 XML的解析方式分为四种:1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。其中前两种属于基础方法,是官方提供的平台无关的解析方式;后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于ja...原创 2018-08-10 21:04:55 · 175 阅读 · 0 评论 -
ConcurrentHashMap JDK1.7和JDK1.8区别
前言以前写过介绍HashMap的文章,文中提到过HashMap在put的时候,插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是rehash,这个会重新将原数组的内容重新hash到新的扩容数组中,在多线程的环境下,存在同时其他的元素也在进行put操作,如果hash值相同,可能...转载 2018-08-07 16:50:11 · 1452 阅读 · 0 评论 -
Java Serializable 序列化和反序列化,transient关键字
遇到这个 Java Serializable 序列化这个接口,我们可能会有如下的问题a,什么叫序列化和反序列化b,作用。为啥要实现这个 Serializable 接口,也就是为啥要序列化c,serialVersionUID 这个的值到底是在怎么设置的,有什么用。有的是1L,有的是一长串数字,迷惑...转载 2018-08-08 15:20:56 · 1993 阅读 · 2 评论 -
浅析Java中的final关键字
浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正。 请尊重作者劳动成果,转载...转载 2018-08-15 22:51:37 · 145 阅读 · 0 评论 -
finally块中的代码什么时候被执行?finally是不是一定会被执行?
问题描述:try{}里有一个return语句,那么紧跟在这个try{}后面的finally{}中的代码是否会被执行?如果会的话,什么时候被执行,在return之前还是return之后?在Java语言的异常处理中,finally块的作用就是为了保证无论出现什么情况,finally块里的代码一定会被执行...转载 2018-08-15 22:53:21 · 3618 阅读 · 0 评论 -
HashMap存储自定义对象
将学生对象和学生的归属地通过键与值存储到map集合中。import java.util.HashMap;import java.util.Iterator;import java.util.Set; class Student { String name; int age; publ...转载 2018-08-15 22:55:04 · 4137 阅读 · 0 评论 -
ORM框架
1. 什么是ORM?对象-关系映射(Object-Relational Mapping,简称ORM),面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表...转载 2018-08-15 22:56:07 · 2653 阅读 · 0 评论 -
泛型的好处和实现原理
泛型的好处泛型简单易用类型安全, 泛型的主要目标是实现java的类型安全。 泛型可以使编译器知道一个对象的限定类型是什么,这样编译器就可以在一个高的程度上验证这个类型消除了强制类型转换, 使得代码可读性好,减少了很多出错的机会Java语言引入泛型的好处是安全简单。泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。泛型的实现原理...原创 2018-07-12 10:46:40 · 2385 阅读 · 0 评论 -
static关键字和final关键字
static关键字static的意思是“静态的”,在java里面可用于修饰属性和方法。 定义类的时候,类中都会有相应的属性和方法,然而对这些方法的使用,都是通过创建本类的对象进行调用的,当调用对象的某个方法时,这个方法没有访问到对象的特有数据时,方法创建这个对象有些多余,但是不创建这个对象,方法又调用不了,那这种情况如何解决呢?这是我们就要用到static关键字了。Static是静态修饰符,一...原创 2018-07-12 10:35:44 · 1784 阅读 · 0 评论 -
如何用数组实现队列和栈?
用数组结构实现大小固定的栈和队列,这是一个面试的常考题目,也是一个比较简单的题目。1.实现栈结构:栈结构是先进后出的,只需要一个数组和一个记录位置的变量size,当进来一个元素,size就++,出去一个元素size就–。2.实现队列结构:相对栈结构要难搞一些,队列的先进先出...转载 2018-07-12 10:11:32 · 5332 阅读 · 0 评论 -
条件运算符的使用(Java)
条件运算符(?:)是唯一的三目运算符,其语法格式为:表达式1?表达式2:表达式3表达式1是一个布尔表达式,当其结果为true时,整个表达式的结果为表达式2的值;否则,整个表达式的结果为表达式3的值。条件表达式等价于一条if…else语句原创 2017-04-06 15:34:15 · 2785 阅读 · 0 评论 -
华为历年笔试面试机考试题1——数字颠倒,字符串反转
数字颠倒和字符串反转是一类题目,本质上是一样的,所以可以放到一起来讲。题目描述数字颠倒 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001字符串反转 写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。例如输入abcd,输出dcba。解答import java.ut...原创 2018-03-26 15:56:59 · 1862 阅读 · 0 评论 -
华为历年笔试面试机考试题2——求最小公倍数
华为历年笔试面试机考试题2——求最小公倍数题目描述正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。解答a,b的最小公倍数等于a,b的积除以它们的最大公约数。import java.util.*;public class Main{ //求最大公约数 public static int getRe...原创 2018-03-26 21:16:17 · 711 阅读 · 0 评论 -
华为机试题3——字符串最后一个单词的长度
题目描述计算字符串最后一个单词的长度,单词以空格隔开。 如输入:hello world,输出:5。解答import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); S...原创 2018-03-26 22:46:08 · 172 阅读 · 0 评论 -
华为机试题4——句子反转、句子逆序
题目描述句子反转给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”。句子逆序将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”。所有单词之间用一个空格隔开,语句中除了英文字母外,...原创 2018-03-27 10:15:27 · 535 阅读 · 0 评论 -
不使用第三个变量,如何交换两个变量的位置?
通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换。代码如下:int a,b;a=10; b=15;int t;t=a; a=b; b=t;这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用。在实际软件开发当中,此算法简单明了,不会产生歧义,便...转载 2018-07-11 16:19:22 · 2658 阅读 · 0 评论 -
ArrayList与LinkedList的区别
ArrayList实现了基于动态数组的数据结构,LinkedList是基于链表的数据结构;对于随机访问,ArrayList优于LinkedList,因为LinkedList需要移动指针;对于新增和删除操作,LinkedList优于ArrayList,因为ArrayList要移动数据。...原创 2018-07-11 16:45:32 · 114 阅读 · 0 评论 -
面向对象5大基本原则
单一职责原则(Single-Resposbility Principle):一个类最好只做一件事开放封闭原则(Open-Closed Principle):对扩展开放,对修改封闭Liskov替换原则(Liskov-Subsitution Principle):自雷必须能替换其基类依赖倒置原则(Dependecy-Inversion Principle):客户端代码(调用的类)尽量依赖(使用...原创 2018-07-11 17:08:28 · 316 阅读 · 0 评论 -
Java程序种类
Application:应用程序,可以独立运行的Java程序,由Java解释器控制执行Applet:Java小程序,不能独立运行(嵌入到Web页中),由Java兼容浏览器控制执行Servlet:Java技术对CGI 编程的解决方案,是运行于Web server上的、作为来自于Web browser 或其他HTTP client端的请求和在server上的数据库及其他应用程序之间的中间层程序。...原创 2018-07-11 17:16:30 · 3587 阅读 · 0 评论 -
Java事件处理模型的三个基本要素
Java 提供的事件处理模型是一种人机交互模型。它有三个基本要素:事件源(Event Source):即事件发生的场所,就是指各个组件,如按钮等,点击按钮其实就是组件上发生的一个事件事件(Event):事件封装了组件上发生的事情,比如按钮单击、按钮松开等等事件监听器(Event Listener):负责监听事件源上发生的特定类型的事件,当事件到来时还必须负责处理相应的事件...原创 2018-07-11 17:22:31 · 13205 阅读 · 0 评论 -
HashMap的工作原理
HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚...转载 2018-07-17 19:16:30 · 136 阅读 · 0 评论 -
ClassLoader和双亲委派机制
博文主要讲classloader的模型、作用和使用,内容是作者学习java反射机制有关知识时记录的笔记。ClassLoaderClassLoad:类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Ja...原创 2018-08-15 22:57:15 · 239 阅读 · 0 评论