![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
astronaut233
这个作者很懒,什么都没留下…
展开
-
工程java代码的规范
这几天公司把我的代码风格规范了一下,现在才知道以前写的是那么的随心所欲。首先是工程的命名方式,是小写的字母然后用 - 隔开,for example: ai-weibo-upload启动类:main数据库的操作:dao工具类:untils配置:config 类的命名方式:参考 阿里巴巴Java开发手册终极版v1.3.0 配置(config文件夹):账号,密码,数据...原创 2019-01-18 18:04:06 · 179 阅读 · 0 评论 -
String 时间戳 转 Date 时间格式 java
今天遇到一个问题是从数据库提取出String类型的时间戳,然后将他转换为Date类型(yyyy-MM-dd HH:mm:ss)再存入数据库那么就总结一下时间类型的转换吧首先这个转换为 String seconds = toutiaoArticle.get("article_publish_time").toString(); Simple...原创 2019-02-20 17:53:07 · 2982 阅读 · 0 评论 -
01背包问题 java
01背包问题是动态规划中的经典问题一、问题描述:有n 个物品,它们有各自的重量和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和?解决这个题有两种方法,和其它的动态规划问题一样数组w[]为物品的重量,v[]为物品的价值一种是递归的思想,从后向前考虑,背包决定是否放一个物品是根据两个值的大小判断(一个值是背包没有放入这个物品的价值,另一个值是背包放入这个物品,...原创 2019-03-02 01:05:59 · 514 阅读 · 0 评论 -
图的邻接矩阵和遍历 拓扑排序 java
图的表示有三种,邻接表,邻接矩阵和十字链表我使用邻接矩阵表示图邻接矩阵中[i][j]表示i节点指向j节点,大小为[i][j]的值比如这样若是无向图,矩阵则是按照对角线对称的。首先是深度遍历,深度遍历是沿着一个节点往下走,当某个节点的下一个节点被访问过,或者就没有下一个节点时,返回。和二叉树的深度遍历类似,使用递归 /** * 深度遍历 ...原创 2019-03-02 18:07:37 · 618 阅读 · 0 评论 -
深入理解java虚拟机(一)java内存区域和内存异常
java与c++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来写得好 jvm内存区域划分java的虚拟机(jvm)是运行java程序的地方,主要分为五部分:方法区,堆,虚拟机栈,本地方法栈和程序计数器程序计数器:是当前线程所执行的字节码的行号指示器,每个线程都需要有一个独立的程序计数器,为了线程切换后能恢复到正确的执行位置。...原创 2019-02-26 18:45:08 · 140 阅读 · 0 评论 -
Java面向对象三大特性 封装 继承 多态
1.封装封装的定义:首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系为什么需要封装:封装符合面向对象设计原则的第一条:单一性原则,一个类把自己该做的事情封装起来,而不是暴露给其他类去处理,当内部的逻辑发生变化时,外部调用不用因此而修改,他们只调用开放的接口,而不用去关心内部的实现public class Human{ ...转载 2019-03-02 18:55:16 · 111 阅读 · 0 评论 -
java反射
反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码))一、反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类...转载 2019-03-06 17:21:32 · 99 阅读 · 0 评论 -
深入理解java虚拟机(三)虚拟机类加载机制
1虚拟机类加载机制的概念虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化。最终形成可以被虚拟机最直接使用的java类型的过程就是虚拟机的类加载机制。Java语言的动态加载和动态连接另外需要注意的很重要的一点是:java语言中类型的加载连接以及初始化过程都是在程序运行期间完成的,这种策略虽然会使类加载时稍微增加一些性能开销,但是会为java应用程...原创 2019-03-10 17:48:33 · 116 阅读 · 0 评论 -
深入理解java虚拟机(四)java内存模型和线程
硬件的效率与一致性由于计算机的存储设备和处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存Cache来作为内存与处理器之间的缓冲:将运算需要使用到的数据复制到缓存中,让运算能快速的执行,当运算结束后再从缓存同步回内存中,这样处理器就无须等待暖man的内存读写了。而这样就会引起“缓存一致性”的问题,因为在多处理系统中,每个处理器都...原创 2019-03-10 19:28:15 · 180 阅读 · 0 评论 -
NIO
java nio的io模型是同步非阻塞,这里的同步异步指的是真正io操作(数据内核态用户态的拷贝)是否需要进程参与。而说java nio提供了异步处理,这个异步应该是指编程模型上的异步。基于reactor模式的事件驱动,事件处理器的注册和处理器的执行是异步的。JAVA NIO是同步非阻塞io。同步和异步说的是消息的通知机制,阻塞非阻塞说的是线程的状态 。下面说说我的理解,clien...原创 2019-03-15 11:44:04 · 118 阅读 · 0 评论 -
深入理解java虚拟机(五)线程安全与锁优化
线程安全当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那么这个对象是线程安全的。Java语言中的线程安全这里讨论的线程安全,就限定于多个线程之间存在共享数据访问的这个前提。按照线程安全的“安全程度”由强到弱排序,可以把Java中各个操作共享的数据分为...原创 2019-03-11 15:57:19 · 270 阅读 · 0 评论 -
ThreadLocal可能引起的内存泄露
ThreadLocal原理ThreadLocal的原理:每个Thread内部维护着一个ThreadLocalMap,它是一个Map。这个映射表的Key是一个弱引用,其实就是ThreadLocal本身,Value是真正存的线程变量Object。也就是说ThreadLocal本身并不真正存储线程的变量值,它只是一个工具,用来维护Thread内部的Map,帮助存和取。注意上图的虚线,它代表一...原创 2019-03-18 16:45:50 · 272 阅读 · 0 评论 -
java 堆与堆排序
1.堆:堆是一种树,由它实现的优先级队列的插入和删除的时间复杂度都是O(logn),用堆实现的优先级队列虽然和数组实现相比较删除慢了些,但插入的时间快的多了。当速度很重要且有很多插入操作时,可以选择堆来实现优先级队列。一般用在动态数据的排列上堆分大根堆和小根堆,在这里主要说大根堆。堆的插入,由于使用数组来实现堆,所以插入的元素一般在数组末尾,也就是堆得最后一个叶子结点,插入后,要是堆维...原创 2019-02-25 21:46:38 · 134 阅读 · 0 评论 -
深入理解java虚拟机(二)jvm 垃圾收集器
可达性分析使用可达性分析来判断对象的存活,基本思路就是通过一系列成为“GC Roots”的对象作为起点,从这些起点开始向下搜索,搜索到所走过的路径成为引用链,当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的比如图中Object5,6,7,虽然之间有关系,但是GC Roots不可达,所以他们将会被判断为可回收的对象。可作为GC Roots的对象有:虚拟机栈中引...原创 2019-03-01 16:13:57 · 133 阅读 · 0 评论 -
转载:HttpClient学习整理
转自:https://www.cnblogs.com/ITtangtang/p/3968093.html HttpClient简介HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程...转载 2019-02-14 18:06:30 · 122 阅读 · 0 评论 -
java转义json出现\u0000 等乱码处理思路
今天遇到了String乱码怎么都去不了的问题,最后的解决方法很简单,也不是方法的问题,是数据过滤之后进行的数据处理,在处理阶段生成了乱码,难怪我在过滤阶段怎么去都去不掉- -,不过花时间知道了很多处理乱码的方法,在这里记录一下。在将中文数据转成json格式的时候,碰到了很多char型直接显示出来的,比如\u0000, \u201d, \u201c首先我想到的是我的数据筛选出现了问题,于是去...原创 2019-01-29 14:38:42 · 19894 阅读 · 1 评论 -
单链表的操作
参考:https://www.cnblogs.com/ysocean/p/7928988.html 链表是一种使用广泛的通用数据结构,它也可以用来作为实现栈、队列等数据结构的基础,基本上除非需要频繁的通过下标来随机访问各个数据,否则很多使用数组的地方都可以用链表来代替。 单向链表(Single-Linked List) 单链表是链表中结构最简单的。一个单链表的节点(Node)...转载 2019-02-21 15:29:21 · 139 阅读 · 0 评论 -
java程序打成jar包上传服务器
今天第一次将自己的程序上传到服务器运行,还是有点小激动的,过程在此记录一下。IDE是idea,下载了一个小工具,可以maven项目打包的然后 右键pom.xml,选到run maven-> clean, compile, package三步都完成之后,开始导入依赖的包(在pom.xml中添加的) 选择run maven-> new goal 添加depency:copy...原创 2019-01-30 16:54:44 · 2939 阅读 · 0 评论 -
单链表实现队列和栈
单链表实现队列很简单,因为队列是先入先出FIFO,所以入队就是在单链表的头插入数据,出队就是在单链表的尾得到数据,然后删除。队列的接口:public interface Queue { void put(int data); int pop(); void display();}接口实现:public class QueueImpl implemen...原创 2019-02-22 19:42:12 · 777 阅读 · 1 评论 -
二叉树的遍历 前中后序,层序
二叉树是很重要的数据结构,它的遍历也同样很重要首先先建造一个二叉树: private class Node{ private int data; private Node leftChind; private Node rightChind; public Node(int data, Node leftChind, N...原创 2019-02-22 22:20:00 · 653 阅读 · 0 评论 -
枚举根节点 GC
GC Roots 枚举根节点描述:GC Roots 被虚拟机用来判断对象是否存活。一、可以做为GC Roots的对象位置 对象虚拟机栈 栈帧中的本地变量表本地方法栈 JNI(一般指的Native方法)引用的对象方法区 静态属性引用对象方法区 常量引用对象二、枚举根节点可达性分...转载 2019-02-27 18:33:12 · 271 阅读 · 0 评论 -
Java的线程安全
线程安全我们这里讨论的线程安全,就限定于多个线程之间存在共享数据访问这个前提,因为如果一段代码根本不会与其他线程共享数据,那么从线程安全的角度来看,程序是串行执行还是多线程执行对它来说是完全没有区别的。共享的数据可以将Java语言中各种操作共享的数据分为以下5类:不可变、绝对线程安全、相对线程安全、线程兼容和线程对立。不可变不可变(Immutable)的对象一定是线程安全的,无...转载 2019-02-18 17:11:25 · 146 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模...转载 2019-02-18 17:19:00 · 110 阅读 · 0 评论 -
java 排序算法
今天重新复习了一下排序的算法,一般分为O(n2)(冒泡排序,插入排序,选择排序)O(nlogn)(快速排序,归并排序,堆排序)直接上代码:public interface Sort { void bubbleSort(int[] data); void insertSort(int[] data); void quickSort(int[] data,int ...原创 2019-02-23 22:17:46 · 100 阅读 · 0 评论 -
java值传递和引用传递
由于java不像c++那样可以使用引用(&)(不同于引用传递)但是为什么上一篇排序时,将数组作为方法的参数却可以全局的改变数组呢?java中存在两种传递,一种是值传递,一种是引用传递值传递是针对8种基本数据类型的(int,short,float,double,char,baye,long,boolean)和String类, Integer, Double等immutable的类...原创 2019-02-23 22:39:35 · 168 阅读 · 0 评论 -
socket编程实例
client:package excercise;import java.io.*;import java.net.*;import java.util.Scanner;public class Client { public static void main(String args[]) throws Exception { int []a=new int[2] ; ...原创 2019-03-18 18:17:07 · 410 阅读 · 0 评论