
Java基础
以南_ttrg
计算机小白一枚
展开
-
数据源:你TM管杀不管埋?
24-Dec-2020 18:54:22.615 严重 [http-nio-8080-exec-3] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [com.tk.controller.UserController] in context with path [] threw exception org.apache.ibatis.exceptions.PersistenceExcep.原创 2020-12-24 19:11:53 · 360 阅读 · 3 评论 -
Java 形参改变,实参是否发生改变
基本数据类型:形参发生改变,实参不会改变引用数据类型:形参发生改变,实参不会改变被final修饰的引用数据类型:形参发生改变,实参不会发生改变引用类型改变引用:形参发生改变,实参不会发生改变package day01;/** * #Description : * #Date: 2020/11/14 17:09 * @author : tiankun */public class ArgsTest { public static void main(St...原创 2020-11-14 17:33:17 · 752 阅读 · 0 评论 -
HashMap JDK7 扩容机制 和 ConcurrentmodificationException 异常
JDK7扩容机制HashMap扩容的目的:让链表缩短在往hashmap里面 put 数据时,hashmap会根据自己内部的逻辑进行扩容当map中元素的个数 size 大于他的阈值( capacity * LoadFacter => 数组大小 * 负载系数 ),并且当前索引所在位置不为null 才进行扩容 ,扩容是成二倍扩容 void addEntry(int hash, K key, V value, int bucketIndex) { if ((size..原创 2020-11-09 01:10:38 · 383 阅读 · 0 评论 -
HashMap——通过位运算来求出 hashcode 的所在的索引
JDK7 中的 HashMap的数据结构是 数组+链表,所以,我们需要通过一些计算尽可能平均的算出数据所在的索引(0-数组长度-1)HashMap中的源码 /** * Returns index for hash code h. */ static int indexFor(int h, int length) { // assert Integer.bitCount(length) == 1 : "length must be a non-zer原创 2020-11-08 19:58:45 · 646 阅读 · 0 评论 -
原码、反码、补码 和 位运算
原码反码补码前言 : 计算机中的数据,都是以二进制补码的形式在运算,而补码则是通过反码和原码推算出来的原码 :(可直观看出数据大小)就是二进制定点表示法,即最高位为符号位,【0】表示正,【1】表示负,其余位表示数值的大小。通过一个字节表示+7和-7,代码:byte b1 = 7; byte b2 = -7;一个字节等于8个比特位,也就是8个二进制位0(符号位) 00001111(符号位) 0000111反码 : 正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。原创 2020-11-08 18:28:40 · 762 阅读 · 0 评论 -
Integer 的 Integer.highestOneBit方法源码解读
今天在学习JDK7 HashMap源码时,它在创建数组容量大小的时候用到了Integer.highestOneBit方法 HashMap中的源码 private static int roundUpToPowerOf2(int number) { // assert number >= 0 : "number must be non-negative"; return number >= MAXIMUM_CAPACITY ..原创 2020-11-08 17:55:43 · 327 阅读 · 0 评论 -
不使用中间变量交换俩个数
正常来说,我们交换俩个数需要一个中间变量。用来暂存交换时的数。比如:public static void main(String[] args) { int[] arr = {11,22,33,44,55,66}; NormalTraversal(arr); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } }原创 2020-09-30 12:31:15 · 143 阅读 · 0 评论 -
IO
流的分类第一类 输入流:数据源到程序(InputStream、Reader读进来) 输出流:程序到目的地(OutputStream、Writer写出去) 第二类 节点流:可以直接从数据源或目的地读写数据 处理流(包装流):不直接连接到数据源或目的地,是其他流进行封装。 目的主要是简化操作和提高性能。 节点流和处理流的关系: 节点流处于io操作的第一线,所有操作必须通过...原创 2020-09-28 23:20:41 · 148 阅读 · 0 评论 -
23种设计模式:(二)结构型模式
根据北京尚学堂的视频所学习结构型模式:核心作用:是从程序的结构上实现松耦合,从而可以扩大整体的类结构,用来解决更大的问题。 分类: 适配器模式、代理模式、桥接模式、 装饰模式、组合模式、外观模式、享元模式结构型模式汇总代理模式 为真实对象提供一个代理,从而控制对真实对象的访问 适配模式 使原本由于接口不兼容不能一起工作的类可以一起工作 桥接...原创 2019-06-11 11:13:36 · 268 阅读 · 0 评论 -
Linux的入门学习
本博客是根据尚硅谷 韩顺平老师的视频所学习本教学视频是18年3月录制的视频视频地址 :https://www.bilibili.com/video/av21303002老师讲课课件(笔记):链接:https://pan.baidu.com/s/1-ryA0iohxk0OIfaL4my8ig提取码:yr7z突然发现那么笔记有密码,哈哈,不能复制,那么,我也就不记笔记...转载 2019-06-02 16:00:32 · 144 阅读 · 0 评论 -
23种设计模式:(一)创建者模型
根据北京尚学堂的课程学习• 创建型模式: – 单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式。 • 结构型模式: – 适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模 式。 • 行为型模式: – 模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模 式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。...原创 2019-06-01 16:43:38 · 385 阅读 · 0 评论 -
Comparable和Comparator实现自定义排序
参考:https://blog.youkuaiyun.com/JQ_AK47/article/details/61203817Comparable接口只有一个方法 compareTo()Comparable是一个内部比较器,很多类都会实现这个接口去实现自己默认的排序,如果我们自己定义一个类,需要按照我们自己的定义的方式来进行排序的话,就可以使用Comparable接口,编写自己的compa...原创 2019-05-11 21:30:04 · 431 阅读 · 0 评论 -
冒泡排序法的优化
今天在看视频的时候,看到关于冒泡算法的优化。所以在这里记一下。下面的正常的冒泡算法public class ArraycopyTest { public static void main(String[] args) { int [] a = {3,5,2,4,6,7,53,2}; int temp =0 ; for(int i =...原创 2019-03-15 20:31:24 · 263 阅读 · 0 评论 -
JAVA学习——多线程
目录线程的核心概念:创建线程代理对象lambda简化线程线程状态线程方法线程终止:线程暂停——SleepYield——礼让Join——插队线程的状态优先级(Priority)守护线程(Deamon)多线程_并发_不同步三大经典案例线程同步synchronized关键字性能分析线程协作(cooperation)高级主题1...转载 2019-03-22 11:21:08 · 1027 阅读 · 5 评论 -
java中的递归和以及存在优化的问题
在过往不知一次的学过递归,每次也能写出,但对其运行的机制以及他的效率都不为之,今天又从新看到递归所以重新学习下,同时也作为我第一篇正式博客的知识。以下是一个一个最普遍的例子,那个求一个数的阶乘:public class jiandan_recursion { static long foo(int i,long sum){ if(i==1) ...原创 2019-03-12 16:22:54 · 1966 阅读 · 0 评论 -
JAVA中的可变参数
Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。注意:可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。可变参数的特点:(1)、只能出现在...转载 2019-03-17 21:35:12 · 124 阅读 · 0 评论 -
JAVA中transient 关键字
今天学习到对象流,序列化反序列化的时候,老师用了一个transient关键字来防止某个属性被序列化,脑子一头懵逼,于是在网上看到了找了别人的博客,也不算是豁然开朗,也算是有点认识。大佬写的JAVA中的关键字 transient...转载 2019-03-18 15:09:20 · 182 阅读 · 0 评论 -
JAVA命名规范
最近在学习javaweb,刚好看到一篇文章,说是程序员写程序其中有一件烦恼的事就是起名字,各种名字一大堆,那么怎么才能更合理更规范的在我们程序中的起名字呢,那当然是要准备我们起名字的规范,不仅仅是为了程序的可阅读性和清晰性,而且是一个作为一个基本程序员的操守。所以我就稍微找了点资料,希望能规范规范我。 @_@~项目名:没有要求,不起中文 包:公司域名倒写 com.baidu. ...转载 2019-04-06 21:32:07 · 144 阅读 · 0 评论 -
JAVA学习——JDBC数据库操作
目录Mysql数据库的介绍JDBCJDBC常用接口Driver接口DriverManager接口Connetion接口Statement接口ResultSet接口批处理事务时间类型Mysql数据库的介绍在学习JDBC,我所用的是Msql数据库,那么首先,先介绍下Mysql数据库Mysql特点:是一种开放源代码的关系型数据库管理系统...转载 2019-04-01 20:26:33 · 281 阅读 · 0 评论 -
正则表达式基础
关于本篇其实菜鸟教程有详细的介绍,以及在各个语言中的引用我就在java方面敲了几个简单的小例子,先够自己简单的使用package com.tk.re;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * 正则表达式基本用法 * @data :2019-4-25下午12:12:41 * @au...原创 2019-04-25 12:40:09 · 158 阅读 · 0 评论 -
MyEclipse启动发生"An error has occurred.See the log file "解决
博客园的博客,无法收藏只得如此转载于此处https://www.cnblogs.com/diyishijian/p/6826109.html转载 2019-05-20 08:51:30 · 1179 阅读 · 0 评论 -
集合(容器)
基于尚学堂视频课程的学习目录泛型:Collection接口中的方法多个容器的操作List手工方法实现ArrayListLinkedListVectorMap接口HashMapTreeMapSetIrerator迭代器遍历容器元素(LIst,map,set)Connections工具类的使用数组也是一种容器,可以用来放对象或是基本数...转载 2019-05-11 19:54:53 · 438 阅读 · 0 评论 -
JAVA的面向对象(OOP-- Object Oriented Programming---面向对象编程)
在为数不多的学习生涯中,我也接触过面向对象的编程,也较为粗糙的学习过java的面向对象编程,但是我承认,当时自己没有好好学,所以再以此次机会重新温习下java的面向对象编程,内容肯定不全面,而且,有些东西我也解释不清。但我尽力。在开始之前,我接下来的所写的很大一部分的了解是来自于我现在学的尚学堂的免费课程。虽未刚了解到了尚学堂,感觉其公司还是很人道的。面向对象与面向过程的区别我刚开始是...转载 2019-03-13 22:32:50 · 470 阅读 · 0 评论