![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 63
fengwuJ
喜欢代码,喜欢学习
展开
-
面试八股文
Q:进程与线程R:区别&联系::线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线;进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信号等),某进程内的线程在其他进程不可见;调度和切换:线程上下文切换比进程上下文切换要快得多;通信方式差异::进程间通信:管道通信;信号量;消息队列;信号;共享内存;套接字;线程间通信:锁机制:包括互斥锁、条件变量原创 2022-01-11 11:15:31 · 980 阅读 · 0 评论 -
TkMapper的Example的TypeHandler处理
在ExampleMapper的处理中,默认会使用StringTypeHander进行java-database的数据库字段映射,下面给出一套方案:import org.apache.ibatis.type.TypeHandler;import tk.mybatis.mapper.MapperException;import tk.mybatis.mapper.entity.EntityColumn;import tk.mybatis.mapper.entity.Example;import原创 2021-08-14 14:39:30 · 470 阅读 · 0 评论 -
Cglib动态创建对象
1.需要用到的包:springboot自带呢....2.使用案例:public class Main { public static void main(String[] args) throws JsonProcessingException, NoSuchFieldException, NoSuchMethodException, InvocationTargetExce...原创 2019-12-30 11:27:32 · 1665 阅读 · 0 评论 -
java-Web的一些坑
用Div+CSS进行网站布局时,做一些浮动层等特殊效果时要考虑到定位问题。这就要用到Position属性等。Position属性有四个值:static、fixed、absolute和relative; absolute是指绝对定位,即将对象从文档流中拖出,使用left,right,top,bottom等属性进行绝对定位,当Position属性值为absolute时对象从文档流中...原创 2018-07-18 09:06:29 · 240 阅读 · 0 评论 -
JavaWeb之初识SpringBoot
springboot简介:几乎不用配置的ssm框架加载原理:springboot的主程序入口是一个简单的java应用程序,项目包含有:主程序入口,自定义的Application类,带有@SpringBootApplication注解,在main函数中调用SpringApplication.run(Application.class, args);即可完成对tomcat服务器的启动;启动完成后,...原创 2018-09-02 16:08:05 · 300 阅读 · 0 评论 -
并发和并行的区别
并行是我们物理时空观下的同时执行并发则是操作系统用线程这个模型抽象之后站在线程的视角上看到的“同时”执行的效果。原创 2018-09-06 22:41:02 · 136 阅读 · 0 评论 -
DTO数据传输对象与AutoMapper
在web项目的开发中,一般会遇到一个问题:那就是Entity实体的属性与前端界面需要的属性不能匹配。可能多一两个属性,也可能少一两个属性,这个时候就需要一个东西(DTO:数据传输对象),以及辅助工具:AutoMapper。 DTO:数据传输对象,应用在Entity实体与前端界面的展示问题。在前端需要的属性数据少而Entity属性数据多的时候,我们不可能将整个Entity都传进前端...原创 2018-09-26 20:26:25 · 633 阅读 · 0 评论 -
spring中的注入方式
注入方式有三种:分别是构造方法注入,setter注入和注解注入。构造方法注入:<!-- 注册userService --><bean id="userService" class="com.lyu.spring.service.impl.UserService"> <constructor-arg ref="userDaoJdbc">&原创 2018-09-26 20:46:28 · 152 阅读 · 0 评论 -
java反射机制常用方法
已知一个Person类。1、获取类变量//第一种,任何一个类都有一个隐含的静态成员变量class Class c1 = Person.class;//第二种,已经知道该类的对象,通过getClass()获得 Class c2 = person.getClass();//第三种,Class类的forName()方法 Class c3 = Class.forN...原创 2018-09-26 21:43:10 · 308 阅读 · 0 评论 -
SpringBoot之感悟
本博客大概会介绍在Springboot开发过程中所遇到的各种问题以及各种工具的配置。1、多项目搭建以及配置:首先建立空的Maven项目作为父项目,然后在父项目中new一个module(即子项目模块),各个子项目通过<depedency>标签进行依赖导入。然后在主启动类中使用@ComponentScan(basePackages = {""})注解进行项目包扫描,如此可以将各个子项目...原创 2019-04-23 22:44:11 · 672 阅读 · 0 评论 -
后端开发技巧
关于接口和抽象类的使用技巧:使用场景:隐藏接口方法,减少冗余代码 1、接口中可以使用default关键字,为该方法写上方法体,避免每一个实现该接口的类都要实现该方法造成代码冗余 2、抽象类中可以定义抽象方法和普通方法,普通方法需要写上方法体 3、可以使用抽象类实例化接口,只重写需要用到的方法,这样可以只暴露接口的部分方法 关于动态代理对象和对象方法的使用技巧;来自装饰者模式和代理模式,使...原创 2019-09-07 16:15:10 · 465 阅读 · 0 评论 -
java的动态代理接口
一、什么是动态代理? 我的理解而言,代理有静态代理和动态代理。静态代理类一般是与被代理类实现同一个接口,并且代理类拥有被代理类的实例,为被代理被增强方法功能;动态代理是在运行过程中动态生成代理对象,增强被代理类的方法功能,或者是代理接口,动态生成接口实现类,实现接口功能。二、动态代理的使用 1.接口如下:public interface ProxyInf {...原创 2019-09-24 17:53:52 · 717 阅读 · 0 评论 -
java短消息业务SMMO之对CMPP_CONNECT和CMPP_CONNECT_RESP的封装
//客户端import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import...原创 2018-06-28 20:06:37 · 1373 阅读 · 0 评论 -
linux(基于Debian) 配置 oralce jdk
首先从官网下载对应的linux jdk,*.gz tar 命令解压:tar -zxvf *.gz 得到xxx文件夹 此时压缩包已经可以删除了 然后mv xxx文件夹 到 /usr/lib/jvm(jvm是我自定义的文件夹,如果存在则直接用,否则可以使用mkdir 创建,名字任取) 打开终端,gedit ~/.bashrc ...原创 2018-07-09 14:17:33 · 175 阅读 · 0 评论 -
java算法之冒泡排序
冒泡原理:冒泡排序,每次只排一个数字,例如:第一次寻找最小的值排到第一位,第二次找第二小的值排到数组第二位,依次类推,冒泡因此得来 冒泡算法的核心和注意事项:冒泡排序主要通过遍历的方式进行排序,双重循环下,外层循环控制遍历次数,若数组只有两个元素则算作一次(每次换位需要用到两个元素),内层循环控制某个元素与部分未排序元素的compare次数;注意下标不要越界!!! java代码...原创 2018-04-08 21:13:22 · 194 阅读 · 0 评论 -
java 之 XML SAX解析
时隔多日,终于,继XML DOM解析之后,开始XML SAX 解析之旅,首先说一下DOM解析,DOM解析:用于解析那种较小的XML文件,它要读取整个XML。我们来做个通俗一点的比喻,讲XML文件比喻成一个人体,DOM解析,就是读取整个人体的信息,由外至内,解析最外层,再依次解析到器官,细胞等等,这是有整体到局部到细节的解析方式;而SAX解析,则是依次,从人体的头部到脚部,每一层都解析到细胞...原创 2018-04-15 20:02:34 · 211 阅读 · 0 评论 -
java 算法之分治策略求最大子数组问题
首先,我们可以使用暴力方式求解最大子数组,编码思路:第一层循环遍历该数组,然后使用第二层循环寻找子数组,用第一层循环的 i 变量来记录寻找位置,然后向后依次遍历,进行累加计算,判断出最大值;java代码如下: //暴力方式求解(遍历) static int findMaxArray(int[] arr, int lenth) { int maxSum = 0; int su...原创 2018-04-10 23:16:57 · 653 阅读 · 0 评论 -
java 之 XML DOM解析
本文主要讲解如何解析一个简单的XML文档:假设有一个XML文档:xxx.xml 1、File f = "xxx.xml"; 或者 URL url = ".....xml"; 首先通过DocumentBuilderFactory得到一个DocumentBuilder对象,然后通过parse(xxx.xml)方法解析成Document对象 DocumentBu...原创 2018-03-29 15:56:52 · 681 阅读 · 0 评论 -
java 中的 访问控制修饰符及其余心得
java访问修饰符:在java语言里面,我们首先要明白类或变量的访问权限;java中提供了四种访问权限修饰符,从最大权限到最小权限依次是:public, protected, default(也称friendly或不带修饰符), private。 public: 本类,同一个包,不同包的子类,不同包的非子类; protected: 本类,同一个包,...原创 2018-04-17 22:18:38 · 298 阅读 · 0 评论 -
java算法之快速排序
快速排序算法:快速排序算法有点像分治策略的思想,主要是通过递归来实现对无序数组的拆分和排序,一次次的递归排序,当每一个无序数组按照一定规则变成有序数组的时候,那么整个数组都将有序。 快速排序算法思想:首先找到一个基准数,假设我们要从小到大排序,我们给该数组两个哨兵(左边为i哨兵,右边为j哨兵),哨兵位置分别位于a[0]和a[arr.lenth-1]; 以 a[0]为基准数,令j哨兵向...原创 2018-04-30 22:24:06 · 196 阅读 · 0 评论 -
java 数据结构算法 之 栈操作
简介:栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 特性:先进后出 元素操作:入栈(push),出栈...原创 2018-05-03 22:54:06 · 340 阅读 · 0 评论 -
java 数据结构算法之 队列
简介:队列是一种特殊的线性表,只能在前端(front)进行删除操作,只能在后端(rear)进行删除操作;队列分为顺序队列和循环队列; 顺序队列:每次插入,队尾指针rear加一,每次删除,队首指针front加一; 循环队列:同顺序队列一样的操作,但在队尾指针达到容器末端的时候,需要将队尾指针指向数组下标0的位置,以便于重复利用删除过值的空间; 队列原理:队列,不如说数组队列...原创 2018-05-05 15:31:40 · 200 阅读 · 0 评论 -
java算法之堆排序
简介:堆排序(HeapSort),利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单。大根堆:Key[i]>=Key[2i+1]&&key>=key[2i+2]小根堆:Key[i]<=key[2i+1]&&Key[i]<=key[2i+2] 堆排序原理: ...原创 2018-04-28 22:32:29 · 143 阅读 · 0 评论 -
java == 和 equals()
Java的==和equals()以及自动装箱拆箱Java的和equals以及自动装箱拆箱抛一个问题先说一说 和 equals方法equals方法再说一下Integer的缓存机制自动装箱和自动拆箱自动装箱自动拆箱再来看之前那个问题就很简单了抛一个问题大家先看下面的代码,先不要看答案自己做一下:public class AutoboxingTest { public static void m...转载 2018-06-21 11:00:39 · 155 阅读 · 0 评论 -
基于字符串匹配的SMMO Demo
package com.fengwuj.SMMOTest;//用户输入消息public class MsgInfo { private String AccessNO; private String FeatureStr; public MsgInfo() {} public MsgInfo(String AccessNo,String FeatureStr) { this.AccessNO...原创 2018-06-16 13:45:21 · 324 阅读 · 0 评论 -
java之短消息业务SMMO ----对CMPP_SUBIMT和CMPP_SUBMIT_RESP的封装
import java.io.ByteArrayOutputStream;import java.io.DataOutputStream;import java.io.IOException;public class CMPP_SUBMIT extends Message_Header { private long Msg_Id=0x00; private byte Pk_total=0x01; ...原创 2018-06-24 21:47:44 · 700 阅读 · 0 评论 -
java 算法之插入排序
排序思想:将一组序列分为左右两组,左边为有序序列(初始时取数组首值),右边为无序序列,每一次从无序序列中读取一个数字,与有序序列进行比对(从右向左比对,直至无前驱或不满足大小条件); 实现方法:遍历所有元素,以j变量记录遍历位置,提取 j 下标中的数值(i 层 循环下为无序序列首值),用j--比对有序序列,直至比对到有序序列队首结束; for【i = 1.....n】{...原创 2018-04-08 20:12:07 · 131 阅读 · 0 评论