Java基础
一只野生程序媛
博客内容为自己整理的笔记,希望对你有帮助~
展开
-
java面试之项目部分
一、项目的生命周期先了解下公司中的项目开发流程: 1.需求分析2.概要设计3.详细设计(用例图,流程图,类图)4.数据库设计(powerdesigner)5.代码开发(编写)Git/svn版本管理工具(提交,更新代码,文档)6.单元测试(junit 白盒测试)(开发人员)7.集成测试 (黑盒测试,loadrunner(编写测试脚本)(高级测试))8.上线试运行 (用户自己体验)...原创 2020-03-19 15:42:07 · 1090 阅读 · 0 评论 -
详解StringBuffer,StringBuilder 以及常见面试题
StringBuffer线程安全(多线程讲解)安全 – 同步 – 数据是安全的不安全 – 不同步 – 效率高一些安全和效率问题是永远困扰我们的问题。安全:医院的网站,银行网站效率:新闻网站,论坛之类的(1)用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,为了解决这个问题,Java就提供了一个字符串缓冲区类。StringBuffer供我们使...原创 2019-04-29 09:06:00 · 830 阅读 · 0 评论 -
Collection集合总结,各集合特点以及使用场景!
Collection集合总结(掌握) Collection |--List 有序(存储顺序和取出顺序一致),可重复 |--ArrayList 底层数据结构是数组,查询快,增删慢。 线程不安全,效率高 |--Vector ...原创 2019-04-30 17:48:03 · 1444 阅读 · 0 评论 -
Map集合(HashMap,TreeMap)学习总结以及经典案例
Map: (1)将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。 (2)Map和Collection的区别? A:Map 存储的是键值对形式的元素,键唯一,值可以重复。夫妻对 B:Collection 存储的是单独出现的元素,子接口Set元素唯一,子接口List元素可重复。光棍 Map集合的数据...原创 2019-05-05 09:23:00 · 516 阅读 · 0 评论 -
Collections总结
Collections(理解) (1)是针对集合进行操作的工具类 (2)面试题:Collection和Collections的区别 A:Collection 是单列集合的顶层接口,有两个子接口List和Set B:Collections 是针对集合进行操作的工具类,可以对集合进行排序和查找等 (3)常见的几个小方法: ...原创 2019-05-05 09:23:20 · 660 阅读 · 0 评论 -
Hashtable和HashMap的区别?List,Set,Map等接口是否都继承子Map接口?
/ * 1:Hashtable和HashMap的区别?* Hashtable:线程安全,效率低。不允许null键和null值* HashMap:线程不安全,效率高。允许null键和null值** 2:List,Set,Map等接口是否都继承子Map接口?* List,Set不是继承自Map接口,它们继承自Collection接口* Map接口本身就是一个顶层接...原创 2019-05-05 09:23:51 · 721 阅读 · 0 评论 -
带你学习异常类(Exception)以及常见面试题!
异常(理解) (1)程序出现的不正常的情况。 (2)异常的体系 Throwable |--Error 我们不处理。这种问题一般都是很严重的,比如说内存溢出。 |--Exception |--RuntimeException 运行期异常,我们需要修正代码 ...原创 2019-05-05 09:24:04 · 1546 阅读 · 0 评论 -
学习IO流之File篇
File (1)IO流操作中大部分都是对文件的操作,所以Java就提供了File类供我们来操作文件 File:文件和目录(文件夹)路径名的抽象表示形式 (2)构造方法 A:File file = new File("e:\\demo\\a.txt"); 根据一个路径得到File对象 B:File file = new Fi...原创 2019-05-07 11:55:10 · 156 阅读 · 0 评论 -
递归的使用以及案例
递归 (1)方法定义中调用方法本身的现象 举例:老和尚给小和尚讲故事,我们学编程 (2)递归的注意事项; A:递归一定要有出口,否则就是死递归 B:递归的次数不能太多,否则就内存溢出 C:构造方法不能递归使用 (3)递归的案例: A:递归求阶乘/** 需求:请用代...原创 2019-05-07 11:55:21 · 1056 阅读 · 0 评论 -
Io流之字节流
IO流(掌握) (1)IO用于在设备间进行数据传输的操作 (2)分类: A:流向 输入流 读取数据 输出流 写出数据 B:数据类型 字节流 字节输入流 读取数据 InputStrea...原创 2019-05-07 11:55:39 · 237 阅读 · 0 评论 -
IO流之字符流
字符流 (1)字节流操作中文数据不是特别的方便,所以就出现了转换流。 转换流的作用就是把字节流转换字符流来使用。 (2)转换流其实是一个字符流 字符流 = 字节流 + 编码表 (3)编码表 A:就是由字符和对应的数值组成的一张表 B:常见的编码表 ASCII ...原创 2019-05-07 11:55:29 · 221 阅读 · 0 评论 -
最全总结Set集合,HashSet,TreeSet 包含案例
Set集合: (1)Set集合的特点 无序,唯一 (2)HashSet集合(掌握) A:底层数据结构是哈希表(是一个元素为链表的数组) B:通过查看add方法的源码,哈希表底层依赖两个方法:hashCode()和equals() 执行顺序: 首先比较哈希值是否相同 ...原创 2019-04-30 17:46:24 · 261 阅读 · 0 评论 -
java8使用Lambda表达式得到以逗号分隔的ids串
String courseIds = packList.stream().filter(e -> e.getCourse() != null).map(PackageCourse::getCourseId).map(String::valueOf).distinct().collect(joining(","));解释:首先将packLi...原创 2019-05-09 14:26:56 · 11935 阅读 · 2 评论 -
Java详解冒泡排序 选择排序 二分查找
A:冒泡排序相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。同理,其他的元素就可以排好。 public static void bubbleSort(int[] arr) { for(int x=0; x<arr.length-1; x++) { for(int y=0; y<arr.length-1-x; y++) ...原创 2019-04-29 09:05:49 · 138 阅读 · 0 评论 -
了解Arrays工具类
Arrays工具类A:是针对数组进行操作的工具类。包括排序和查找等功能。B:要掌握的方法把数组转成字符串:public static String toString(int[] a)排序:public static void sort(int[] a) 底层是快速排序二分查找:public static int binarySearch(int[] a,int key)(4)开发原...原创 2019-04-30 09:03:01 · 196 阅读 · 0 评论 -
Java-对象数组以及内存图解
对象数组(掌握)(1)数组既可以存储基本数据类型,也可以存储引用类型。它存储引用类型的时候的数组就叫对象数组。(2)案例:用数组存储5个学生对象,并遍历数组。/* * 分析: * A:创建学生类。 * B:创建学生数组(对象数组)。 * C:创建5个学生对象,并赋值。 * D:把C步骤的元素,放到数组中。 * ...原创 2019-04-30 09:03:10 · 1615 阅读 · 0 评论 -
Collection集合总结
集合(Collection): (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组 而数组的长度固定,所以不适合做变化的需求,Java就提供了集合供我们使用。 (2)集合和数组的区别? A:长度区别 数组...原创 2019-04-30 09:03:35 · 189 阅读 · 0 评论 -
Struts拦截器与过滤器共同点和区别?
拦截器与过滤器共同点和区别:共同点: 都拦截资源!区别:过滤器,拦截器所有资源都可以; (/index.jsp/servlet/img/css/js)拦截器,只拦截action请求。拦截器是struts的概念,只能在struts中用。...原创 2019-04-29 10:36:36 · 314 阅读 · 0 评论 -
ArrayList,Vector,LinkedList 学习总结,含例子
List的子类: (1)List的子类特点 ArrayList: 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector: 底层数据结构是数组,查询快,增删慢 线程安全,效率低 LinkedList: ...原创 2019-04-30 09:03:52 · 279 阅读 · 0 评论 -
泛型的使用
泛型: (1)泛型概述 是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。 (2)格式: <数据类型> 注意:该数据类型只能是引用类型。 (3)好处: A:把运行时期的问题提前到了编译期间 B:避免了强制类型转换 C:优化了...原创 2019-04-30 09:03:21 · 103 阅读 · 0 评论 -
增强for循环的使用
增强for循环: JDK5的新特性:自动拆装箱,泛型,增强for,静态导入,可变参数,枚举 (1)增强for 是for循环的一种,增强for其实是用来替代迭代器的 (2)格式: for(元素的数据类型 变量名 : 数组或者Collection集合的对象) { 使用该变量即可,该变量其实就是数组或者集合中的元素。 ...原创 2019-04-30 09:03:44 · 533 阅读 · 0 评论 -
java8使用Lambda表达式list转map-含实例解释
Public Map<String, String> findAllMap() {List<CourseType> courseTypeList = findAll();if (ObjectUtils.isNotNull(courseTypeList))return courseTypeList.stream().collect(Co...原创 2019-05-05 15:00:29 · 16207 阅读 · 2 评论 -
java8使用Lambda表达式转list
List<PackageCourse>packageCourseList = packageCourseList.stream().filter(v -> v.getCourse()!=null).collect(Collectors.toList());解释:重新统计成一个getCourse()!=null的list集合。---------------------...原创 2019-05-09 14:27:05 · 3832 阅读 · 0 评论 -
IO流之小结+经典案例
IO流小结: IO流 |--字节流 |--字节输入流 InputStream int read():一次读取一个字节 int read(byte[] bys):一次读取一个字节数组 ...原创 2019-05-07 11:56:39 · 742 阅读 · 2 评论 -
Java-注释
**(1)定义:** 就是对程序进行解释说明的文字 **(2)分类:** A:单行注释 // B:多行注释 /**/ C:文档注释 /** */ **(3)例子。**public class SysSchool { private String schoolName;//学校名 private BigDecima...原创 2019-04-25 15:30:08 · 255 阅读 · 0 评论 -
多线程-扩展篇(Lock锁,线程通信,线程池,定时器..)
1:多线程 (1)为了更清晰的表达如何加锁和释放锁,,JDK5以后提供了一个新的锁对象Lock。 Lock锁 Lock: void lock(): 获取锁。 void unlock():释放锁。 ReentrantLock是Lock的实现类.public class S...原创 2019-05-07 11:56:18 · 259 阅读 · 0 评论 -
Java-控制跳转语句(break,continue)
(1)break:中断的意思 A:用在循环和switch语句中,离开此应用场景无意义。 B:作用 a:跳出单层循环 b:跳出多层循环,需要标签语句的配合(2)continue:继续 A:用在循环中,离开此应用场景无意义。 B:作用 a:跳出单层循环的一次,可以继续下一次 C:填空题 for(...原创 2019-04-25 17:41:58 · 217 阅读 · 0 评论 -
Java-方法(函数),方法重载
方法(1)方法:就是完成特定功能的代码块。注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法。(2)格式:修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {方法体语句;return 返回值;} 修饰符:目前就用 public static。后面再详细讲解其他修饰符 返回值类型:就是功能结果的数据类型 方法名:就是起了一个名...原创 2019-04-25 17:30:51 · 262 阅读 · 0 评论 -
Java-数组,java内存分配
数组(1)数组:存储同一种数据类型的多个元素的容器。(2)特点:每一个元素都有编号,从0开始,最大编号是数组长度-1。编号的专业叫法:索引 通过 数组名[索引]获取数组中的元素。(3)定义格式A:数据类型[] 数组名;B:数据类型 数组名[]; 推荐是用A方式,B方法就忘了吧。 但是要能看懂 (4)数组的初始化 A:动态初始化 ...原创 2019-04-25 17:44:10 · 179 阅读 · 0 评论 -
Java-二维数组
二维数组(理解) (1)元素是一维数组的数组。 (2)格式: A:数据类型[][] 数组名 = new 数据类型[m][n]; m:表示这个二维数组有多少个一维数组。 n:表示每一个一维数组的元素有多少个。 B:数据类型[][] 数组名 = new 数据类型[m][]; m:表示这个二维数组有多少个一维数组。 列数没有给出,可以动态的给。这...原创 2019-04-25 17:45:15 · 1256 阅读 · 0 评论 -
Java-值传递
2:值传递(理解) (1)Java中的参数传递问题 Java中只有值传递。 基本类型:形式参数的改变不影响实际参数 引用类型:形式参数的改变直接影响实际参数![在这里插入图片描述](https://img-blog.csdnimg.cn/20190425164952808.png?x-oss-process=image/watermark,...原创 2019-04-25 18:08:16 · 120 阅读 · 0 评论 -
Java-面向对象
面向对象: (1)面向对象 面向对象是基于面向过程的编程思想 (2)面向对象的思想特点 A:是一种更符合我们思考习惯的思想 B:把复杂的事情简单化 C:让我们从执行者变成了指挥者 举例: 买电脑 洗衣服 做饭 ...原创 2019-04-25 18:08:43 · 89 阅读 · 0 评论 -
Java-给初学者的建议
建议今天开始写一个word文档,专门用于记录错误。错误现象错误原因解决方案将来你们之间最大的差别:出现了问题,能够及时解决。不管你是出于什么原因选择了学习java,既然选择了当程序员,哪能这么轻易的放弃! 加油,自律,坚持!!!现在的你,是过去的你所造。未来的你,是现在的你所造。...原创 2019-04-25 18:09:26 · 186 阅读 · 0 评论 -
Thymeleaf常用写法,带实例,最全!
Thymeleaf:市面上主流的 Java 模板引擎有:JSP、Velocity、Freemarker、ThymeleafJSP本质也是模板引擎,Spring Boot 官方推荐使用 “Thymeleaf”模板引擎Thymeleaf 官网:https://www.thymeleaf.org/Thymeleaf 在Github 的主页:https://github.com/thymeleaf...原创 2019-07-29 19:56:59 · 4527 阅读 · 2 评论 -
Java去除字符串中结尾的所有br标签
/** * 剔除结尾的br-正则 * @param cs 字符序列 * @return 删除html标签后的字符序列 */ public static String replaceEndBrHtml(String cs){ String rex = "^(.*)(<br/?>)$"; Pattern com...原创 2019-07-25 13:55:48 · 2398 阅读 · 0 评论 -
Java-循环经典案例!
例子:/*需求:小芳的妈妈每天给她2.5元钱,她都会存起来,但是,每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,请问,经过多少天,小芳才可以存到100元钱。分析: A:小芳的妈妈每天给她2.5元钱 double dayMoney = 2.5; B:她都会存起来 double daySum = 0; C:从第一天开始存储...原创 2019-04-25 18:07:49 · 2521 阅读 · 3 评论 -
Java-循环语句(for,while,do-while)
循环语句(1)有三种:for,while,do…while(2)for循环语句A:格式for(初始化语句;判断条件语句;控制条件语句){循环体语句;} 执行流程: a:执行初始化语句 b:执行判断条件语句 如果这里是true,就继续 如果这里是false,循环...原创 2019-04-25 16:10:43 · 198 阅读 · 0 评论 -
Java-switch语句
switch语句(1)格式:switch(表达式) {case 值1:语句体1;break;case 值2:语句体2;break;…default:语句体n+1;break;}格式解释说明:switch:说明这是switch语句。表达式:可以是byte,short,int,charJDK5以后可以是枚举JDK7以后可以是字符串case:后面的值就是要和表达式进...原创 2019-04-25 16:04:42 · 501 阅读 · 0 评论 -
反射总结
1:反射 (1)类的加载及类加载器 (2)反射: 1.概念:通过class文件对象,去使用该文件中的成员变量,构造方法,成员方法。 允许程序在运行期间,动态的创建某个对象,并调用其中的方法。是创建对象的另外一种方式 要想使用,首先你必须得到class文件对象,其实也就是得到Class类的对象。 ...原创 2019-05-10 16:35:51 · 235 阅读 · 0 评论 -
你要了解的JDK新特性
JDK新特性 (1)JDK5(掌握) 装箱和拆箱 泛型 增强for 静态导入 可变参数 枚举 public enum Direction { //FRONT, BEHIND, LEFT, RIGHT; ...原创 2019-05-10 16:35:38 · 247 阅读 · 0 评论