
JavaSE基础
suye233
穷变
展开
-
使用java+Mysql数据库做一个简单的登录窗口界面
最近在做项目的时候,对java连接到数据库小有体会,特此来写一篇博客给大家讲解在java中如何连接使用数据库。来展示下效果图: 首先,我们来编写关于数据库里的数据操作,包括基本的增删查改以及增加的功能。我在数据库里定义了一个info库,并在库里添加了player表。player表内容如下:可以看到,表里定义了三个变量in...原创 2017-10-26 20:36:53 · 62487 阅读 · 72 评论 -
Java源码分析——String、StringBuffer、StringBuilder类(二)——AbstractStringBuilder抽象类
在Java中,关于字符串类分为两种,一种是上篇博客讲的String类,即不可变字符串类,另外一种则是可变字符串类,原创 2018-11-15 17:10:04 · 252 阅读 · 0 评论 -
Java源码分析——Throwable、Exception、Error类解析
在Java中,错误分为两种,一种是jvm能处理的错误,叫做异常,Java中表示Exception类;而另外一种则是jvm不能处理的错误,叫做错误,Java中表示为Error类。原创 2018-11-18 18:48:03 · 1805 阅读 · 3 评论 -
Java源码分析——包装类与Void类解析
在Java中,有着8种基本类型,其对应着8种包装类型,分别为:Integer、Long、Short、Boolean、Float、Double、Byte以及Character类,这8种包装类型分别封装了对应类型的常用操作以及一些优化操作,比如包装类的缓存,自动装箱等原创 2018-11-16 13:55:02 · 1377 阅读 · 0 评论 -
Java源码分析——java.util工具包解析(一)——ArrayList、LinkedList、Vector类解析
List列表类与Set集合类的共同源头是Collection接口,而Collection的父接口是Iterable接口,在Collection接口下又实现了三个常用的接口以及一个抽象方法,分别为Queue接口、List接口、Set接口以及AbstractCollection抽象类原创 2018-11-20 22:24:49 · 207 阅读 · 0 评论 -
Java源码分析——java.util工具包解析(二)——HashSet、TreeSet、LinkedHashSet类解析
Set,即集合,与数学上的定义一样,集合具有三个特点:无序性:一个集合中,每个元素的地位都是相同的,元素之间是无序的。互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次。确定性:给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,二者必居其一,不允许有模棱两可的情况出现。   &...原创 2018-11-21 22:14:52 · 201 阅读 · 0 评论 -
Java源码分析——System类解析
System类是在Java程序中作为一个标准的系统类,实现了控制台与程序之间的输入输出流,系统的初始化与获取系统环境变量、数组的复制、返回一个精准的时间以及一些简单的对虚拟机的操作等。原创 2018-11-19 20:36:01 · 557 阅读 · 0 评论 -
Java源码分析——java.util工具包解析(四)——四大引用类型以及WeakHashMap类解析
WeakHashMap是Map的一种很独特的实现,从它的名字可以看出,它是存贮弱引用的映射的,先来复习一下Java中的四大引用类型: 1. 强引用:我们使用的大部分引用实际上都是强引用,这是使用最普遍的引用。强引用的对象垃圾回收器绝不会回收它。当内存空间不足,jvm宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。 2. 软引用:软引用是当jvm中内存不够的情况下会回收其对象,在内存充足的情况下与强引用别无二样。原创 2018-11-24 17:14:03 · 227 阅读 · 0 评论 -
Java并发——ThreadLocal、ThreadGroup类源码解析
即线程范围之间如何实现数据的共享。其实很简单,利用一个Map来存贮,键存贮线程的名字、id等数据,而值则存贮着该线程对应共享的数据,将该Map传进对应的线程就可以实现数据的共享了,但是得注意同步。防止出现"脏数据"。而ThreadLocal类的存贮策略与上述相似,但是它只保存着每个线程的对应的本地数据,一个线程并不能访问ThreadLocal里另外一个线程保存的数据。说了这么多,还没正式的介绍ThreadLocal类,中文名是本地线程类,原创 2018-11-28 20:51:20 · 402 阅读 · 0 评论 -
Java源码分析——java.util工具包解析(三)——HashMap、TreeMap、LinkedHashMap、Hashtable类解析
Map,中文名字映射,它保存了键-值对的一对一的关系形式,并用哈希值来作为存贮的索引依据,在查找、插入以及删除时的时间复杂度都为O(1),是一种在程序中用的最多的几种数据结构。Java在java.util工具包中实现了Map接口,来作为各大Map实现类的规范,其中主要的Map实现类有三个,分别是:HashMap、TreeMap以及LinkedHashMap类原创 2018-11-23 15:16:15 · 340 阅读 · 0 评论 -
Java源码分析——java.util工具包解析(五)——UUID、Base64、内置观察者模式Observer接口、EventListener、RandomAccess
对UUID、Base64、内置观察者模式Observer接口、EventListener、RandomAccess的使用以及一些思考原创 2018-11-25 16:23:52 · 339 阅读 · 0 评论 -
Java并发——Thread类源码解析、线程初探
线程相较于进程,它是轻量级的,并且一个进程可以包含多个线程,这多个线程之间共享该进程的资源,且每个线程自己独占一份内存,这个空间叫做线程栈,是由系统创建该线程时创建的,主要是保存线程中的自定义的数据等。注意的是,线程依托于进程,当该进程消亡时,进程内所有的线程也会跟着消亡。而Java中的线程是抢占式的原创 2018-11-27 22:49:24 · 361 阅读 · 0 评论 -
Java杂谈之一二事——父类强制转变子类
父类强制转变为子类原创 2018-12-17 17:13:48 · 543 阅读 · 0 评论 -
Java源码分析——java.lang.reflect反射包解析(二) Array类,数组的创建
在Java中,引用类型中有那么几个特殊的类,Object类是所有类的起源、Class类定义所有类的抽象与行为、ClassLoader类实现了类从.class文件中加载进jvm,而Array数组类,则实现了数组手动的创建原创 2018-10-30 15:07:09 · 636 阅读 · 0 评论 -
Java源码分析——Object类解析,一切类的源头
Java语言类的起始点源于Object类,其它类都直接或间接继承Oject类,可以说Object类是一切类的源头。下面来谈下Object类的内部的编码以及简单的阐述下其中的native本地的方法...原创 2018-10-24 18:11:13 · 279 阅读 · 0 评论 -
Java源码分析——java.lang.reflect反射包解析(三) 动态代理、Proxy类、WeakCache类
代理模式是一个经常被各种框架使用的模式,比如Spring AOP、Mybatis中就经常用到,当一个类访问另外一个类困难时,可通过一个代理类来间接访问,在Java中,为了保证程序的简单性,代理类与目标类需要实现相同的接口。也就是说代理模式起着一个中转站的作用原创 2018-10-31 16:09:06 · 787 阅读 · 0 评论 -
c++与java区别的理解(一)--引用
在刚刚接触java的引用的时候,我便不假思索的将它等同于c++的引用,后来在实践中发现,和我想的有很大的不同。 先来看看两者之间的定义: java中的引用:“每种编程语言都有自己的数据处理方式。有些时候,程序员必须注意将要处理的数据是什么类型。你是直接操纵元素,还是用某种基于特殊语法的间接表示(例如C/C++里的指针)来操作对象。所有这些在 Java 里都得到了简化原创 2017-12-22 17:03:20 · 1328 阅读 · 0 评论 -
c++与java区别的理解(二)--处理参数顺序和输出编译顺序
前几天碰到了一个很有趣的问题,就是关于c与java的处理参数顺序和输出编译顺序的不同,话不多说,先来看两个案例:#includeusing namespace std;void print(int i,int j){ cout<<i<<" "<<j<<endl;}int main(){ int i=0; print(++i,i++); i=0;原创 2017-12-23 17:10:22 · 341 阅读 · 0 评论 -
java浅拷贝与深拷贝
原文链接:http://blog.youkuaiyun.com/tounaobun/article/details/8491392假如说你想复制一个简单变量。很简单: [java] view plaincopyprint?int apples = 5; int pears = apples; int apples = 5; int转载 2017-12-31 22:15:43 · 167 阅读 · 0 评论 -
关于对equals的源码分析
最近感觉对Java总有种似懂非懂的感觉,刚好前不久同学经常问我equals的问题,于是找到equals的源码彻底的弄懂它。 在我们学习Java的时候,都经常在String类中调用该方法,以此来比较两个String类的内容是否相等,初学Java的时候很多人==与equals分不清,究其原因是因为Java的继承机制,==始终是比较的两者的地址,而equals方法查Java源码可得,最初始的是原创 2017-12-18 23:35:29 · 1332 阅读 · 0 评论 -
一,策略模式
假如,有一天小明接到了一个任务,该任务要他做出一个展示鸟的种类和叫声的项目,小明转身一想,用传统的OO思想毫不犹豫的写出了如下的抽象类:public abstract class Bird { public abstract void quack();//叫的方法 public abstract void display();//展示的方法}并写出了一个子类实现:package原创 2018-04-25 19:36:03 · 181 阅读 · 0 评论 -
利用回调实现伪监听
在有延迟的加载某项事物时,利用回调往往能起到很好的展现代码清晰度的作用,比如网络的获取:首先定义一个网络请求类: public class CreateRoomRequest extends BaseRequest { private GetService request; public static class CreateRoomParam { p...原创 2018-09-11 18:11:47 · 240 阅读 · 0 评论 -
jsoup编写java爬虫
jsoup是一款简洁轻便的java网络爬虫库,因为它的API与DOM对象操作直接挂钩,所以收到了广泛的欢迎,下面来讲解如何爬取京东上的图书。因为我是采用的gradle框架来完成集成的,所以可以直接添加jsoup的依赖: compile('org.jsoup:jsoup:1.10.2')&nbsp...原创 2018-10-16 23:17:32 · 325 阅读 · 0 评论 -
Java源码分析——Class类、ClassLoader类解析(三) 类加载器、实现自定义类加载器
在java中,加载一个类是通过ClassLoader类来执行的,也就是类加载器完成。java中所有的类,都必须加载进jvm中才能运行,这个加载的意思是指将.class文件加载进jvm中,返回一个Class类对象的过程。类加载器(class loader)是一个负责加载JAVA类(classes)的对象,ClassLoader类是一个抽象类,需要给出类的二进制名称,class loader尝试定位或者产生一个class的数据,一个典型的策略是把二进制名字转换成文件名然后到文件系统中找到该文件原创 2018-10-28 19:06:14 · 235 阅读 · 0 评论 -
Java源码分析——Class类、ClassLoader类解析(一) 类的抽象与获取
Class类是集合了所有类的属性、行为的抽象,描述类的修饰、类的构造器、类的字段以及类的方法等抽象,这里的类是指广泛的类,包括了接口、注解、数组等。简单的来说,它涵盖了所有类的共性,所以研究它时,应当从所有类的共性出发,来探讨其中的内容。虽然Class类是所有类的抽象,但是它依旧是与其它类一样具有共同...原创 2018-10-25 22:47:51 · 1247 阅读 · 0 评论 -
Java源码分析——java.lang.reflect反射包解析(一) AccessibleObject、ReflectionFactory、Filed、Method、Constructor类
Java的反射机制一直是被人称赞的,它的定义是:程序在运行中时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。简单的来说就是可以通过Java的反射机制知道自己想知道的类的一切信息。原创 2018-10-29 17:11:03 · 1551 阅读 · 2 评论 -
Java源码分析——Class类、ClassLoader类解析(二) 类的识别、Modifier类、TypeVariable、GenericDeclaration接口
在类的加载与实例化的时候,如何识别类、接口、注解以及数组是个值得思考的问题,不仅是这些常用的引用类,还包括类、接口等的public、private、defalut、static等修饰符,以及识别一个泛型类或者接口。原创 2018-10-26 22:37:57 · 446 阅读 · 0 评论 -
Java源码分析——String、AbstractStringBuilder、StringBuffer、StringBuilder类(一)——String类、intern方法
在Java中,与C++一样,也是亲自封装了字符串,命名为String类,用来对字符串的常用操作,其中Java也仿照String类设计出了其它的几个字符串类,用来处理String类不能处理的场景,分别是StringBuffer类与StringBuilder类原创 2018-10-24 13:39:22 · 186 阅读 · 0 评论 -
Java注解以及用注解实现简单的小型Spring框架
注解在Java中是无实际意义的,并不能影响程序的运行结果以及逻辑。但是注解在Java中起着标签的作用,为代码运行提供一些特殊的信息,就像为某件事物加标签一样,从标签我们能得知程序的某些信息。以及带大家用注解简单的实现一个简单的Spring框架原创 2019-07-27 09:37:30 · 219 阅读 · 0 评论