JAVA
对明天的期待丶
这个作者很懒,什么都没留下…
展开
-
char类型如何转换为int
char类型直接转化为int输出的是他的ascall码,例如:public class Main { public static void main(String[] args) { int a = '9'; System.out.println(a); }}结果:因为字符0~9的ascall都是连续的,因此我们可以用他们的ascall码表减去字符‘0’的ascal...原创 2018-11-15 19:57:53 · 6257 阅读 · 0 评论 -
SpringMVC集成redis实现简单的增删改查
1、pom文件引入jar包 <!-- redis --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> ...原创 2018-12-05 21:31:23 · 1152 阅读 · 0 评论 -
JAVA中反射是什么?
能够分析能力的程序成为反射,通俗的来讲就是能够通过运行时的类名获取类的全部信息。反射机制可以用来干以下的事情:1、在运行时分析类的能力2、在运行时查看对象,例如,编写一个toString()方法供所有类使用3、实现通用的数组操作代码4、利用Method对象,这个对象很像C++中的函数指针下面来说一说他的底层实现原理:在程序运行期间,JVM始终对所有的对象都有跟踪,并且将其所...原创 2018-11-11 11:08:31 · 1463 阅读 · 0 评论 -
Java动态代理详解
一、代理是什么?代理类指的时一种可以在程序运行时创建全新的类的类原创 2018-12-14 09:52:20 · 272 阅读 · 0 评论 -
SQL语句join on和where的区别
连接的作用是,同时查询多个表的数据。left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录。right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录。inner join: 内连接,又叫等值连接,只返回两个表中连接字段相等的行。full join:外连接,返回两个表中的行:left join + right join。cross ...原创 2018-11-12 17:13:36 · 5581 阅读 · 0 评论 -
子类继承父类后的相同变量的值的变化和内存分布
先来看一个例子,假设我们现在有A类public class A{ private String name; public A(String name){ this.name = name; } public String getName_1() { return name; } public void setName_1(String nam...原创 2018-11-12 16:20:47 · 628 阅读 · 0 评论 -
final关键字的作用
final关键在用于表示该事件不可被改变。final用于修饰变量时,表示该变量一经声明和放在类中被赋初值后就再也不能改变值,知道程序运行结束。final关键字用于修饰类时,表示类不可以被继承。final关键字修饰方法时,表示改方法不可以被子类的方法覆盖(final类中的方法将会自动的生成为final方法)。 ...原创 2018-11-11 16:54:21 · 175 阅读 · 0 评论 -
Spring注解实现原理
先来说说注解是什么:注解顾名思义,就是类似于添加注释,但是又不跟注释完全一样,因此,我们可以将它理解为将类或者方法与特定的信息进行关联。那么注解如何实现?1、接口使用@interface定义。2、通过继承以下注解,实现功能: 元注解@Target,@Retention,@Documented,@Inherited * 元注解@Target,@Retention,@D...原创 2018-11-11 16:12:22 · 23843 阅读 · 5 评论 -
JAVA父类子类转化问题
1、可以用父类去声明子类对象2、可以将父类对象强转为子类对象,前提是只有父类对象本身就是用子类new出来的时候, 才可以在将来被强制转换为子类对象实例如下:package hrx;public class TestExtends { static class A { private int x = 1; private int y = 2; } static cla...原创 2018-10-28 11:06:25 · 1114 阅读 · 0 评论 -
java == 和 .equals()的区别
” == “:例如“a==b” ,需要判断a跟b的类型是否相同, a跟b的值是否相同,a跟b的存储地址是否相同。 “.equals()”:a.equals(b),只会判断a跟b的类型是否相同, a跟b的值是否相同。equals的源码: public boolean equals(Object anObject) { if (this == anObject) ...原创 2018-10-22 21:43:15 · 121 阅读 · 0 评论 -
Java 类锁和静态锁
Java的锁分为两种: 对象锁(又称实例锁,synchronized):该锁针对的是该实例对象(当前对象)。synchronized是对类的当前实例(当前对象)进行加锁,防止其他线程同时访问该类的该实例的所有synchronized块,注意这里是“类的当前实例”, 类的两个不同实例就没有这种约束了。每个对象都有一个锁,且是唯一的。 类锁(又称全局锁,static synchroni...原创 2018-12-14 18:57:49 · 1043 阅读 · 2 评论 -
JAVA全排列
全排列:从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。公式:全排列数f(n)=n!(定义0!=1),如1,2,3三个元素的全排列为:{1,2,3} {1,3,2} {2,1,3} {2,3,1} {3,1,2} {3,2,1}共3*2*1=6种。先看代码,我们再细说思路:...原创 2018-12-07 16:33:50 · 295 阅读 · 0 评论 -
Java Comparable接口详解
我们经常听到服务商这样说:”如果类遵从某个特定接口,那么就旅行这项服务“。在Java中Comparable接口就是这个特定的接口,Arrays类的sort方法承诺可以对对象数组进行排序,但前提是:对象所属的类必须实现了Comparable接口(几大基本类型除外)。但是,我们有两种选择:1、自己实现Comparable接口 @Override public int compareT...原创 2018-12-10 19:57:50 · 726 阅读 · 0 评论 -
Eclipse中复制项目后,怎么更改项目名等相关配置?
在工作中,我们偶尔需要建立新的项目,但是不需要自己搭建项目框架,而是直接可以复制上一个项目。复制之后,发现改了项目名字之后,访问路径,以及打包名字等都会保留旧的项目名,看起来非常不爽,那么就需要我们彻底地将项目进行重新翻新。第一部分:右击项目 ->Properties ->Web Project Settings 更改Context root,更改为新的项目名 ...原创 2018-12-18 16:40:21 · 500 阅读 · 0 评论 -
synchronized的实现原理与应用
为什么要使用synchronized关键字呢?这是因为多线程之间数据是共享的,他们可以同时对一个数据进行读写,这是如果两个线程同时对一个数据进行写操作时,只会有一个的数据写入成功,因此我们需要使用锁保证资源的读写安全。synchronized是什么呢?在多线程并发编程的过程中synchronized一直都是一个很重要的角色,很多人都称呼他为重量级锁,但是在Java SE 1.6时对它进...原创 2018-11-28 16:14:24 · 200 阅读 · 0 评论 -
volatile底层实现原理和其应用
volatile时轻量级的synchronized,它在多处理器开发中保证了数据的读的一致性,意思就是当一个线程修改一个共享变量时,另外一个线程能读到这个共享变量的值。如果volatile变量修饰符使用的恰当的话,他的运行成本会大大降低,因为他不会引起上下文的切换和调度,因为他并不会阻塞线程,也因此他不能保证多个线程对数据进行写操作时的安全性(即原子性)。volatile不能保证原子性:所...原创 2018-11-27 06:42:06 · 1799 阅读 · 0 评论 -
JAVA异常处理中的一些坑
异常处理有几种方式,如下:1、try{}catch{}处理try{ //可能出现异常独的代码}catch(Exception e){ //捕获异常后如何进行处理}finally{ //强制必须执行的一个代码块}2、throw语句,程序员自己指定的处理异常的方式public class Test1 extends Test{ //你要抛出的异...原创 2018-12-05 21:33:33 · 281 阅读 · 0 评论 -
JAVA PDFbox 坐标选区提取文字
pdfboxjar包默认是按照行来提取文字的,但是我们的pdf可能并是按照行来进行排序的,那么我们就可能用到坐标矩形选区操作,选取固定区域的文字,原理大家不必纠结,我们只需要拿来用即可,他只是一个工具类,需要时,我们还可以去查与官方文档,去组装自己需要的功能。提取矩形区域内容:1、导入pdfboxjar包(每个版本的操作都不一样),这里我使用的是maven<dependency...原创 2018-11-20 16:06:44 · 4202 阅读 · 7 评论 -
JAVA泛型数组ArrayList详解
泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用。例如,我们并不希望为聚集String和File对象分别设计不同的类。下面来解释一下泛型数组ArrayList(泛型数组来解释一下这个原理):java没有增加泛型类之前:在java增加泛型类之前,泛型设计是通过继承实现的。ArrayList类只维护一个Object引用的数组:public class ArrayList{ ...原创 2018-11-20 17:13:48 · 3648 阅读 · 0 评论 -
protected在java和c++中的区别
在java中protected默认对本包和所有子类可见。在C++中protected修饰的只能被本类或者子类访问。原创 2018-10-19 19:53:11 · 647 阅读 · 0 评论 -
类的加载和初始化的区别
说到类的加载和类的初始化,想必大家都会很迷茫,总是搞不清楚他俩的区别,下面就来说一说他俩的区别:类的加载包括类的初始化,类的加载后使用前的最后一个阶段。 类的加载:代表jvm将java文件编译成class文件后,以二进制流的方式存放到运行时数据的方法区中,并在java的堆中创建一个java.lang.Class对象,用来指向存放在方法堆中的数据结构。这里给大家推荐一篇java类加载...原创 2018-10-20 00:44:20 · 10621 阅读 · 2 评论 -
Unicode和String相互转换
原理:每一个char字符都有其本身的独有的unicode编码,我们可以将字符串的每个字符的码点拼接起来就是字符串对应的Unicode编码。Sting转为Unicode: /** * 字符串转换unicode */ public static String convert(String string) { StringBuffer unicode = new Stri...原创 2018-10-17 22:05:16 · 12453 阅读 · 0 评论 -
JAVA阻止继承:final类和方法
有时候,为了阻止人们利用某个类定义子类。不允许扩展的类被称为final类。可以将类声明为final类,也可以将方法设置为final方法,这样子类就不能覆盖父类的某个方法(将类声明为final类只会将其中的所有的方法声明为final方法)。public final class A { ...} public class A { ... public fina...原创 2018-10-29 23:08:22 · 1805 阅读 · 0 评论 -
Java 128陷阱
先来看一下这个例子:public class B{ public static void main(String[] args) { Integer n1 = 127; Integer n2 = 127; Integer n3 = 128; Integer n4 = 128; int a = 127; int b = 127; int c = 128; in...原创 2018-11-14 17:22:19 · 167 阅读 · 0 评论 -
JAVA中的强制类型转换详解
强制类型转化:将一个类型强制转换为另一类型的过程称为类型强制转换。例如将double转换为int时,舍弃了小数部分,那么跟着这个类似,类也有强制转换一说。将一个子类的引用赋给一个超类的变量,编译器时允许的。但是将一个超类的引用赋给一个子类变量时,必须进行类型转换,这样才能够通过运行时的检查。注意:在继承链上试图进行向下的类型转换时,一定要注意(假设Manage时Person的子类):...原创 2018-11-13 16:45:13 · 909 阅读 · 0 评论 -
equals方法和==的作用和区别
==:在比较基本类型时比较的是他们的值,在比较引用类型时比较的是他们的地址。equals:用于检测一个对象是否等于另外一个对象,判断两个对象是否具有相同的引用。特别注意:String类型是引用类型,但是他可以用equals比较值,这是因为String的equals方法被重写了,他直接比较值。public class B{ public static void main(Stri...原创 2018-11-13 17:12:17 · 333 阅读 · 0 评论 -
JAVA多线程详解
为什么要使用多线程? 因为多线程能在某些情况下减少cup的浪费,就比如我们的网络爬虫请求,抓取下来数据需要20ms,cup处理只需要1ms,那么单线程的话,相当于cup等待了20ms,多线程就可以在一个线程等待信息抓取下来时,执行另一个线程。但是值得注意的是,多线程之间需要访问同一临界资源时,需要对资源加锁,保证每次只有一个线程在操作临界资源。那么什么是线程? ...原创 2018-11-22 20:11:08 · 193 阅读 · 0 评论 -
Spring接收ajax传的中文乱码如何解决?
原因:原因是这可以说是spring mvc的一个bug,spring MVC有一系列HttpMessageConverter去处理用@ResponseBody注解的返回值,如返回list或其它则使用 MappingJacksonHttpMessageConverter,返回string,则使用 StringHttpMessageConverter,而这个convert使用的是字符集是iso-885...原创 2018-11-25 21:11:25 · 672 阅读 · 0 评论 -
深拷贝与浅拷贝
在JAVA中给对象赋值分为浅拷贝和深拷贝,浅拷贝指的是只是将被赋值的对象的指针指向用来赋值的对象,深拷贝指的是在给当前对象开辟一个新的空间,并给他拷贝一份相同的值。浅拷贝:两个对象指向相同的堆对象,他们是完全一样的两个对象,就好像一个人的笔名和真正名称一样。public class Test { private String name; public Test(String name...原创 2018-11-25 21:47:11 · 144 阅读 · 0 评论 -
JAVA通过继承Thread和实现Runnable实现多线程的区别
如果一个类继承Thread,则不适合资源共享。但是如果实现了Runable接口的话,则很容易的实现资源共享。实现Runnable接口比继承Thread类所具有的优势:1):适合多个相同的程序代码的线程去处理同一个资源2):可以避免java中的单继承的限制3):增加程序的健壮性,代码可以被多个线程共享,代码和数据独立1、通过继承Thread类实现public class T...原创 2018-11-25 22:02:02 · 685 阅读 · 0 评论 -
thymleaf读取内容中的html元素
利用<div th:text="${txt}">读取的数据库内容无法解析html元素,需要使用<div th:utext="${txt}"></div>原创 2019-02-16 19:11:36 · 562 阅读 · 0 评论