狂神说mybatis01:第一个程序-编程思维

1.简介 1.1 什么是MyBatis MyBatis 是一款优秀的持久层框架 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程 MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 Java对象】映射成数据库中的记录。 MyBatis 本是apache的一个

java 位运算符 &、|、^、~、<<、>>、>>>-编程思维

      撸了N久的代码,但是突然冒出来个位运算,我就蒙蔽了,这是什么?我是谁?我在干什么?我在哪?   1)闲扯 关于位运算符无非也就 与(&)、或(|)、异或(^)、取反(~)、左移(<<)、右移(>>)、无符号右移(>>>) 位运算其实就是二进制的运算,加减乘除适用于十进制,而位运算就是二进制的运算,但是由于我们的运算都是基于十进制来说

arraylist 扩容原理-编程思维

    面试中经常问到的问题之一就是List的扩容机制了,他是怎么做到扩容的,大家都能答出来底层是数组,复制一个数组来扩容,但是再具体一点来说,大家就不知道该怎么说了,如果不看源码说这么多确实就差不多了,但是看了源码你会说的更多,更详细,更具体,本篇主要看的是jdk1.8  至于其他版本大同小异,看看就知道了,言归正传 1)List扩容实现步骤          总的来说就是分两步:1、扩容  

java 最基础的三种排序排序-编程思维

     主要讲五个排序,冒泡排序、选择排序、插入排序   1)冒泡排序   /** * 冒泡排序 (默认升序排) * 相邻两个相比较,较大的向后放,从数组或者集合中的第一个与第二个比较到倒数第二个与最后一个比较为一轮比较 * 总共需要比较list.length-1轮循环比较 */ @Test public void bubbleso

java:抽象类和接口的异同?-编程思维

异:   1、抽象类中可以有私有属性、私有方法,接口中只能有常量和公开的方法。   2、抽象类之间只能单继承,接口之间可以多实现和多继承。   3、接口强调功能的实现,抽象类强调所属关系。 同:   1、子类、实现类都必须重写它们的抽象方法,或者声明自己为抽象类。   2、都不可以被实例化。     抽象类 简介:   1、类被abstract修饰,不可被实例化,其余和正常类没有区别   2、

java:常见的修饰符有哪些?-编程思维

修饰符 一、类的修饰符 //一个源文件里面必须有且只有一个类:访问修饰符为public,类名与文件名一致 //公开的、可继承的、可实例化的类 public class Demo_01 {} //同一个包下可见的、不可继承的类 final class Test_01 {} //同一个包下可见的、需要被继承的、不可实例化的类 abstract class Test_02 {} 二、变量的修饰符

java:数据类型有哪些?默认值呢?-编程思维

数据类型:8+1 一、基本数据类型   1、数字类型:      整型:byte(1字节)、shot(2字节)、int(4字节,默认)、long(8字节)      浮点型:float(4字节)、double(8字节,默认)   2、字符类型:char(2字节)   3、布尔类型:boolean(1位) 二、引用数据类型(4字节)     数组、对象、接口....   默认值 一、自动初始化

java:包装类的缓存机制是?-编程思维

对包装类进行直接赋值时,若值在缓存区内,则会指向执行缓存区的地址。(通过new赋值则不会) 缓存范围:     1、Boolean,全部缓存。     2、Character、Byte、Short、Integer、Long,缓存范围:-128 ~ 127     3、Float、Double,无缓存。   例子1:   直接赋值缓存内的值。 public static void ma

从安装开发环境到第一个“hello world”-编程思维

安装Java8 为什么要安装java8? java8和小破站的教程同步。 安装方法: 1.官网安装(我踩雷了,下载得慢,不过最后安装成功了!) 2.镜像网站:清华镜像 3.公众号(网上的全是套路了) 4.我的云盘:[移动云盘(包含IDE2022)](链接:https://caiyun.139.com/m/i?0g5CL6vzLpQ1A 提取码:9DWQ 复制内容打开移动云盘PC客户端,操作更方便

java的注释和标识符-编程思维

java 的注释规则 1. 单行注释 语法:// 描述://用于当行注释,与JavaScript一样 //这是一个代码注释 2. javadoc注释 语法: /** *注释内容 / 描述:多行注释中可以用“@参数” /** *@Descript:这是一个注释 *@Author:主旋律世界 */ 3. 多行注释 语法: /* */ /* 内容1 内容2 。。。。。 */ 标识符和数据类型 1

面向对象-编程思维

什么是面向对象编程? 找东西来解决问题! 为什么java会采取这种套路来编程? 面向对象到底要学什么? ———————————————————————————————————————————————————————————————————— 设计对象并使用 类和对象 类(设计图)对象共同特征的描述   类的定义   对象:真实存才的具体东西   如何得到类的对象:      类名 对象名 = n

java的7种阻塞队列及其实现原理-编程思维

队列和阻塞队列 队列 队列(Queue)是一种经常使用的集合。Queue 实际上是实现了一个先进先出(FIFO:First In First Out)的有序表。和 List、Set 一样都继承自 Collection。它和 List 的区别在于,List可以在任意位置添加和删除元素,而Queue 只有两个操作: 把元素添加到队列末尾; 从队列头部取出元素。 超市的收银台就是一个队列: 我

javaee(多线程、线程通信、线程安全、线程池、线程池工具)-编程思维

多线程 多线程的创建 Thread类的方法 线程安全、线程同步 线程通信、线程池 定时器、线程状态.. Thread类 java是通过java.lang.Thread类来代表线程的 按照面向对象的思想,Thread类应该提供了实现多线程的方式 创建线程 方式一 1.定义一个线程类:extends Thread public class MyThread extends Thread{

javaee(网络编程、tcp、线程池优化)-编程思维

网络编程 Client-Server(CS) Browser/Server(BS) 1.客户端--服务端 安装客户端 更新。 依赖PC 2.浏览器和服务端 分布式 兼容性 一站开发 网络通信: UDP 不确定在线 不做消息确认 TCP可靠的通信 及时通信 模拟BS通信 三要素 IP地址:设备在网络中的地址,唯一标识 端口:应用程序在设备中的唯一标识 协议:数据在网络中的传输规则

javaee(单元测试、反射、动态代理、xml)-编程思维

单元测试 最小的功能单元编写测试代码,java针对方法,检查方法的正确性 JUnit单元测试框架 @Test注解 public class A { @Test public void a(){ ..... } } 必须导入jar包 定义的测试方法必须是无参数无返回值的,且公开的方法 测试的方法要用@Test注解 注解 @Test @Befo

java基础(完整版)-编程思维

java javaSE 注释: block块级 line 行 标识符和关键字 组成部分、变量名、类名、方法名--------标识符 $\数字、_\字母 数据类型 强类型语言---安全性高--速度会慢 基础类型 引用类型 int-----128·127 整数、浮点数、字符类型、Boolean类型 类、接口、数组 位、字节、1B=8bit位 字符:是指计算机中使用的字母、数字、字、符号

java基础(非常简单)-编程思维

java javaSE 注释: block块级 line 行 标识符和关键字 组成部分、变量名、类名、方法名--------标识符 $\数字、_\字母 数据类型 强类型语言---安全性高--速度会慢 基础类型 引用类型 int-----128·127 整数、浮点数、字符类型、Boolean类型 类、接口、数组 位、字节、1B=8bit位 字符:是指计算机中使用的字母、数字、字、符号

java基础(数组、面向抽象编程、static、异常)-编程思维

数组 相同的数据类型的数据集合 按照一定的先后次序排列组合 通过下标来访问他们 声明---创建 建议 String[] a; String a [];//c 和c++才有不专业 String [] a =new int [10]; a[i]--取值 数组的默认初始化 数组是引用类型,他的元素相当于类的实例变量,因此数组一经过分配空间,其中的每个元素也按照实例变量同样的方式被隐藏

javaee(常用api集合)-编程思维

javaEE 常用API Object类 public String toString() //打印地址 :类的全类名@内存地址 存在的意义:为了被子类去重写,以便于返回对象的内容信息,而不是地址信息 public Boolean equals()//默认比较两个对象的地址是否相同 public Boolean equals(Object o){ // 1.不是同一个