java基础
左沩
本人本科计算机专业,大学一心学习java编程,熟悉各种主流框架技术,对常见算法非常熟悉,经常外接各种私活,曾在公司单任务过项目负责人,负责整个项目的开发与实施,项目经验丰富.
展开
-
从阅读ReentrantLock 源码到实现自己的分布式锁
由于公司现在的架构师微服务,每个服务都需要进行分布式部署,对于一些功能,可能就需要考虑用分布式锁,分布式锁的实现方案有很多种,为了更升入的理解,楼主考虑先学习下深度的学习下jdk的可重入锁ReentrantLock 打开ReentrantLock的源码便发现 它内部实现了aqs,通过继承aqs实现了公平锁Sync,非公平锁NonfairSync说到这我介绍下什么是aqsaqs 是一个抽象队列同步器,设计模式是模板模式。核心数据结构:双向链表 + state(锁状态)底层操作:...原创 2020-05-18 18:08:11 · 817 阅读 · 0 评论 -
Java Lambda表达式入门
原文链接: Start Using Java Lambda Expressions下载示例程序 Examples.zip 。原文日期: 2014年4月16日翻译日期: 2014年4月27日翻译人员: 铁锚简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能。本人转载 2017-12-18 10:47:18 · 246 阅读 · 0 评论 -
详解内部类
可以将一个类的定义放在另一个类的定义内部,这就是内部类。 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二)。第一次见面 内部类我们从外面看是非常容易理解的,无非就是在一个类的内部在定义一个类。public class OuterClass { private Strin转载 2017-04-03 15:42:52 · 202 阅读 · 0 评论 -
Java中:对已有的List<Bean>进行排序
对于Java中一个已经存在的List来说,要给他排序,传统上有两种方式:一个是Bean要实现Comparable接口,另一个是创建Comparator子类。第一种方式需要在原有的Bean上扩展Comparable接口,一般使用不多,因为最好不要随意更改JavaBean。第二种方式则是独立于原有JavaBean,实现的方法需要传入两个Bean对象。关于这两种方式的使用,可以参转载 2016-12-26 12:30:56 · 1782 阅读 · 0 评论 -
java类加载,反射,动态代理入门理解
1、java的类加载机制,参考文档http://blog.csdn.net/gjanyanlig/article/details/6818655JVM的类加载是通过ClassLoader及其子类来完成的,类的层次关系和加载顺序可以由下图来描述:1)Bootstrap ClassLoader负责加载$JAVA_HOME中jre/lib/rt.jar里所原创 2016-10-07 17:26:53 · 1380 阅读 · 0 评论 -
注解(Annotation)自定义注解入门
元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: 1.@Target, 2.@Retention, 3.@Documented, 4.@Inherited 这些类型和它们所支持的类在java.lang转载 2016-10-07 14:49:32 · 337 阅读 · 0 评论 -
enum入门
关键字枚举enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用,这是一种非常有用的功能。enum的特性1、创建enum时,编译器会给你生成一个相关的类,这个类继承java.lang.neum,因此定义的neum不能够继承,但可以实现接口2、enum常亮 Positionleft ,right("右方向"), fr原创 2016-08-27 20:11:23 · 756 阅读 · 0 评论 -
java对象转json的一点心得
参考文档:http://blog.csdn.net/wilsonke/article/details/379215711、java对象转json格式无非就是可以有两种方式,一种是框架,一种是用一些开源的封装好的json jar包。首先说下如何利用框架吧,框架本人熟悉的就两种,一种是strtus2,strtus2无非就是将要转化为json的数据,放到我们设置的bean中,然后通过值栈可以自动原创 2016-11-08 10:53:31 · 12293 阅读 · 1 评论 -
Java中类加载过程和对象创建过程
类加载过程:1, JVM会先去方法区中找有没有相应类的.class存在。如果有,就直接使用;如果没有,则把相关类的.class加载到方法区2, 在.class加载到方法区时,会分为两部分加载:先加载非静态内容,再加载静态内容3, 加载非静态内容:把.class中的所有非静态内容加载到方法区下的非静态区域内4, 加载静态内容:4.1、把.class中的所有静态转载 2016-10-16 08:31:37 · 488 阅读 · 1 评论 -
Java输入、输入、IO流 类层次关系梳理
Java输入、输入、IO流 类层次关系梳理本文主要关注在Java编程中涉及到的IO相关的类库、方法。以及对各个层次(抽线、接口继承)的流之间的关系进行梳理 相关学习资料http://baike.baidu.com/view/1007958.htm?noadapt=1http://blog.csdn.net/hguisu/article/details/7418原创 2016-09-07 20:08:38 · 2051 阅读 · 0 评论 -
java面向对象编程思想的理解
1、我们总说java是一门面向对象编程的语言,那什么是面向对象呢?我是这样理解的,对象是事物存在的实体,现实中,随处可见的事物便是对象,如人类、书桌、计算机、高楼大厦等。人类解决问题的方式总是将复杂的事物简单化,于是就会思考这些对象都是由哪些部分组成的。通常都会将对象划分为两个部分,即动态部分与静态部分。静态部分,顾名思义就是不能动的部分,这个部分被称为“属性”,任何对象都会具备其自身属性,如原创 2016-10-05 18:02:53 · 17805 阅读 · 0 评论 -
java内存栈java虚拟机
http://www.cnblogs.com/zuoxiaolong/p/jvm9.html 通过这几天对一个内存溢出程序的监控,学习了程序运行时对内存的使用机制,在这里和大家分享下。 Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此转载 2016-09-23 16:37:21 · 306 阅读 · 0 评论 -
如何调优JVM - 优化Java虚拟机(大全+实例)
标签: jvmjava虚拟机优化generationjdk2010-03-30 19:06 3455人阅读 评论(0) 收藏 举报堆设置-Xmx3550m:设置JVM最大堆内存 为3550M。-Xms3550m:设置JVM初始堆内存 为3550M。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。-Xss128k:设置每个线程的栈 大小。JDK5.0以转载 2016-09-23 16:29:05 · 272 阅读 · 0 评论 -
字符编码笔记:ASCII,Unicode和UTF-8
编码:是指将我们看的懂得字符转化成我们看不懂,只有计算机才能看的懂得二进制字节。 解码:是指我们看不懂,计算机能看懂的二进制字节,转化成我们能看的懂得字符。字符编码笔记:ASCII,Unicode和UTF-8今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就转载 2016-09-07 16:20:16 · 229 阅读 · 0 评论 -
集合的理解
1、栈,队列在集合中的运用栈,先进后出,,但是注意便利的时候,还是按照先进先出的概念便利输出 在java中我们运用运用到栈的对象 ~~~~~~ statck 通过 push() 和 pop() 方法。 stack介绍 继承的父类是 Vector vector继承的接口是List,而 vector是线程安全原创 2016-05-19 17:40:07 · 404 阅读 · 0 评论 -
对equals方法和 ==的理解
我们对两个对象进行equals比较,其实底层是根据 hashcode 返回的整数值决定的,hashcode的返回值 是根据 由 Object 类定义的 hashCode 方法确实会针对不同的对象返回不同的整数。(这一般是通过将该对象的内部地址转换成一个整数来实现的,但是 JavaTM 编程语言不需要这种实现技巧。) String 类重写了has原创 2016-05-18 22:20:56 · 460 阅读 · 0 评论 -
正则表达式基本入门必备知识
1、java正则表达式在我们对字符进行判断是否符合需求时,极大的方便了我们的编程。正则是一个难点,但是在开发中最常用的也就莫过于几个方法,和一些表达式(1)首先我们来掌握下,学习正则我们必须首先知道一些字符串的基本方法判断功能public boolean matches(String regex)分割功能public String[] split(String regex)替换功能原创 2016-09-22 17:53:52 · 301 阅读 · 0 评论 -
string ,stringbuffer
String常量池详解: 1.String使用private final char value[]来实现字符串的存储,也就是说String对象创建之后,就不能再修改此对象中存储的字符串内容,就是因为如此,才说String类型是不 可变的(immutable)。String类有一个特殊的创建方法,就是使用""双引号来创建.例如new String("i am")实际创建了2个 S原创 2016-08-20 17:54:48 · 307 阅读 · 0 评论 -
TCP、UDP、IP 协议分析
互连网早期的时候,主机间的互连使用的是NCP协议。这种协议本身有很多缺陷,如:不能互连不同的主机,不能互连不同的操作系统,没有纠错功能。为了改善这种缺点,大牛弄出了TCP/IP协议。现在几乎所有的操作系统都实现了TCP/IP协议栈。TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,如下图所谓的协议就是双方进行数据传输的一种格式。转载 2016-09-10 22:14:10 · 372 阅读 · 0 评论