javaSE学习
奥兰治的威廉
这个作者很懒,什么都没留下…
展开
-
synchronized(this) 和 synchronized( other object)
三种同步方法(非静态):第一种:直接锁方法public synchronized void print(){...//逻辑代码}第二种:锁方法中的代码块public void print(){synchronized(this){...//需要同步的逻辑代码} ...//非同步逻辑代码}第三种...原创 2020-04-09 09:41:53 · 184 阅读 · 0 评论 -
Java What is a difference between ? super E and ? extends E
public LinkedBlockingQueue(Collection<? extends E> c)public int drainTo(Collection<? super E> c)The first says that it's "some type which is an ancestor of E"; the second says that i...原创 2020-03-24 15:45:15 · 144 阅读 · 0 评论 -
环境变量 PATH 和 java classpath 的区别
1.PATH即为系统的环境变量,系统就会从左到右搜索(这里的顺序很重要,可以利用这个特性覆盖掉某个旧版本的jdk。)环境变量PATH中执行的目录,直到找到对应的可执行文件并执行(找到之后,后面的目录都会被忽略掉)。如果找不到,提示该命令不存在。2.CLASSPATHCLASSPATH环境变量的作用是指定Java类所在的目录(或许它的意思就是PATH of Class)。当运行java程...转载 2020-03-10 21:54:49 · 342 阅读 · 0 评论 -
组合:Go 与 Java 的区别
Go 在组合时,可以不用new被组合的类,而直接使用它们的方法type Flyer struct {}func (Flyer) fly() { fmt.Println("fly")}type Runner struct {}func (Runner) run() { fmt.Println("run")}type Duck struct { Flyer Runn...原创 2019-10-25 09:39:06 · 260 阅读 · 0 评论 -
Golang和Java中的继承和组合
Golang的面向对象机制与Smalltalk或者Java等传统面向对象的编程语言不同。传统面向对象编程语言的一个重要特性是继承机制。因为继承机制支持在关联对象间进行代码复用和数据共享。继承机制曾在代码复用和数据共享的设计模式占据主导地位,但是目前组合这一古老的技术重新焕发了活力。在我们探讨如何在Go中实现继承机制之前(Golong中的继承机制和其他语言(Java)的继承机制有区别),我们先看...转载 2019-10-22 14:25:20 · 378 阅读 · 0 评论 -
Java 的 try catch
try catch 用来捕获非编译错误的代码,try catch 的主要作用是将捕获的异常转为相应的错误error,然后执行catch中的语句,再接着往下执行,不会使整个程序down掉某个函数中的某行代码有意或无意地引发了一个运行时异常。这时,初始的 异常 详情会被建立起来,并且该程序的控制权会立即从此行代码转移至调用其所属函数的那行代码上,也就是调用栈中的上一级。这也意味着,此行代码所属函数...原创 2019-10-15 08:35:28 · 115 阅读 · 0 评论 -
java IO 流总结大全
https://blog.csdn.net/qq_41061437/article/details/81740680转载 2019-03-23 14:09:31 · 168 阅读 · 0 评论 -
IDEA 快捷键
1.在当前类中查找方法(类结构图) Ctrl + F122.快速查找类 Ctrl+N快速查找文件 Ctrl+Shift+N快速查找符号 Ctrl+Shift+Alt+N查找字符串, find in path 功能查找接口的实现类:ctrl + alt +B3.最近的文件 Ctrl+E最近更改的文件 Ctrl+Shift+E4.抽取类 Ctrl...原创 2019-03-27 21:02:41 · 212 阅读 · 0 评论 -
[Java 8] ::
public class AcceptMethod { public static void printValur(String str){ System.out.println("print value : "+str); } public static void main(String[] args) { List<St...原创 2019-04-23 15:32:02 · 106 阅读 · 0 评论 -
JVM 和 JMM 的关系
1. JMM 是抽象的概念,只是一个标准原创 2019-07-20 15:06:14 · 207 阅读 · 0 评论 -
java IO 文章
http://www.cnblogs.com/rollenholt/archive/2011/09/11/2173787.html原创 2019-08-01 09:47:48 · 65 阅读 · 0 评论 -
base64 和 MD5的区别
Base64实质是 一种编码格式,如同UTF-8 是一种用64个字符来表示任意二进制数据的方法 可逆性。 可以将图片等二进制文件转换为文本文件。 可以把非ASCII字符的数据转换成ASCII字符,避免不可见字符。MD5实质是一种散列表的计算方式 不可逆性。 任意长度的明文字符串,加密后得到的密文字符串是长度固定的。...原创 2019-08-21 11:51:04 · 1618 阅读 · 0 评论 -
浅拷贝 深拷贝 和 引用拷贝(指针拷贝)
拷贝分为两种方式,一种是引用拷贝(指针拷贝),一种是对象拷贝引用拷贝:和对象拷贝的不同之处在于,引用拷贝只会生成一个新的对象引用地址,但两个地址其最终指向的还是同一个对象对象拷贝:这种方式会重新生成一个新的对象,生成的新对象与原来的对象没有任何关联而对象拷贝又分为 浅拷贝 和 深拷贝下面分别说一下 Java 和 Go 的 拷贝:引用拷贝(指针拷贝):java:U...原创 2019-10-08 16:33:54 · 1058 阅读 · 0 评论 -
值传递和引用传递
Java 、Go 和 Python 在函数传参时是值传递还是引用传递?首先要分清楚值类型和引用类型num是基本类型,值就直接保存在变量中。而str是引用类型,变量中保存的只是实际对象的地址。一般称这种变量为"引用",引用指向实际对象,实际对象中保存着内容Java:java中方法参数传递方式是按值传递如果参数是基本类型,传递的是基本类型的字面量值的拷贝如果参数是引用类型,传递...原创 2019-10-09 15:04:41 · 97 阅读 · 0 评论 -
java 枚举 enum
定义WeekDay.MON.name() == WeekDay.MONpublic enum WeekDay { //todo 每个成员变量默认有value,且从0开始 SUN(0), MON(1), TUS(2), WED(3), THU(4), FRI(5), SAT(6); SUN, MON, TUS, WED, THU, FRI, SAT; publ...原创 2019-03-22 10:27:34 · 79 阅读 · 0 评论 -
Java 线程池
下面是多线程的一种写法 :class PrintRunnable implements Runnable { // i如果是全局变量,会被多个线程同时共享 int i = 1; @Override public void run() { while (i <= 10) { System.out.println(Th...原创 2019-03-09 22:13:21 · 73 阅读 · 0 评论 -
JAVA并发编程与高并发解决方案笔记
https://www.jianshu.com/p/c6ce651e802d原创 2019-02-21 10:16:07 · 255 阅读 · 0 评论 -
JAVA泛型Class<T>的区别
1. 先解释下泛型概念泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。Java语言引入泛型的好处是安全简单。在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,...转载 2018-12-13 19:07:50 · 635 阅读 · 0 评论 -
SLF4J和Logback和Log4j和Logging
前言 Java帝国在诞生之初就提供了集合、线程、IO、网络等常用功能,从C和C++领地那里吸引了大量程序员过来加盟,但是却有意无意地忽略了一个重要的功能: 输出日志。 对于这一点,IO大臣其实非常清楚, 日志是个很重要的东西, 因为程序运行起来以后, 基本上就是一个黑盒子,如果程序的行为和预料的不一致,那就是出现Bug了,如何去定位这个Bug 呢? ...转载 2019-01-15 15:01:13 · 148 阅读 · 0 评论 -
ActiveMQ与Logback日志组件SLF4J冲突导致日志不输出
SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/C:/Users/LIUBR/.m2/repository/org/apache/activemq/activemq-all/5.15.4/activemq-all-5.15.4.jar!/org/slf4j/impl/Sta...原创 2019-01-31 14:06:05 · 1892 阅读 · 0 评论 -
阅读 Java 的异常信息
package error_test;import java.io.IOException;/** * Created by lby on 1/28/2019 */public class Test { private void fun1() throws IOException { throw new IOException("level 1 except...原创 2019-01-28 10:59:01 · 232 阅读 · 0 评论 -
spring注入接口还是实现类,同一接口有多个实现类,如何注入
1、接口:IUserServicepublic interface IUserService { public void sayHello();}2、实现类:UserServiceImpl,实现了UserService接口@Service("UserServiceImpl ")public class UserServiceImpl implements IUser...原创 2019-02-15 11:42:26 · 15526 阅读 · 6 评论 -
为什么要实现Serializable
实现序列化的两个原因:1、将对象的状态保存在存储媒体中以便可以在以后重新创建出完全相同的副本;2、按值将对象从一个应用程序域发送至另一个应用程序域。实现serializabel接口的作用是就是可以把对象存到字节流,然后可以恢复,所以你想如果你的对象没实现序列化怎么才能进行持久化和网络传输呢,要持久化和网络传输就得转为字节流,所以在分布式应用中及设计数据持久化的场景中,你就得实现序列化。 是不...转载 2019-02-15 17:02:42 · 401 阅读 · 0 评论 -
类锁synchronized(Class|Object) 和 对象锁synchronized(this)
synchronized在代码块上的使用:1、对于静态方法,由于此时对象还未生成,所以只能采用类锁;2、只要采用类锁,就会拦截所有线程,只能让一个线程访问。3、对于对象锁(this),如果是同一个实例,就会按顺序访问,但是如果是不同实例,就可以同时访问。4、如果对象锁跟访问的对象没有关系,那么就会都同时访问...原创 2019-02-17 13:43:52 · 479 阅读 · 0 评论 -
闭包
1. "闭包就是跨作用域访问变量。"【示例一】var name = 'wangxi'function user () { // var name = 'wangxi' function getName () { console.log(name) } getName()}user() // wangxi在 getName 函数中获取 name,首先在 ...转载 2019-02-27 20:25:58 · 124 阅读 · 0 评论 -
java 对象之间的强转
定义两个类public class Test{ 父类}public class TestExtend extends Test{ 子类}根据java多态,子类继承父类,子类可以强转为父类,说明子类就是父类,但是父类却不是子类,所以父类不能强转为子类在继承关系中,如果一个实例的数据类型是某个子类,那它的数据类型也可以被看做是父类。但是,反过来就...原创 2019-02-28 09:06:37 · 4979 阅读 · 0 评论 -
JAVA项目中CLASSPATH路径
classpath就是存放.class等编译后文件的路径。javac:如果当前你要编译的java文件中引用了其它的类(比如说:继承),但该引用类的.class文件不在当前目录下,这种情况下就需要在javac命令后面加上-classpath参数,通过使用以下三种类型的方法 来指导编译器在编译的时候去指定的路径下查找引用类。(1).绝对路径:javac -classpath c:/junit3....转载 2019-02-14 09:39:33 · 706 阅读 · 0 评论 -
类的成员变量存在JVM的哪块内存区域
public class A{ public static void main(String[] args){ B b = new B(); }}public class B{ int i; C c; B(){ i = 1; c = new C(); }}public class C{...原创 2019-02-25 13:32:35 · 17513 阅读 · 6 评论 -
JDK版本错误:Unsupported major.minor version 51.0
有时候把项目从本机编译文件部署到服务器,或者发给别人使用时,会报如下异常:java.lang.UnsupportedClassVersionError: test_hello_world :Unsupported major.minor version 51.0at java.lang.ClassLoader.defineClass1(Native Method)at java.l...原创 2019-02-20 13:43:41 · 142 阅读 · 0 评论 -
泛型:为什么要在方法前写 <T>
public class Test<T> { private T name; public T getT(){ return name; } public void setT(T name){ this.name = name; } public <T> void setT2(T na...原创 2019-03-05 14:29:25 · 1726 阅读 · 0 评论 -
关于BufferedReader的read()及readLine()
BufferedReader的readLine()方法是阻塞式的, 如果到达流末尾, 就返回null, 但如果client的socket末经关闭就销毁, 则会产生IO异常. 正常的方法就是使用socket.close()关闭不需要的socket. 虽然写IO方面的程序不多,但BufferedReader/BufferedInputStream倒是用过好几次的,原因是: 它有一个很特别...转载 2018-12-04 20:11:11 · 8885 阅读 · 0 评论