Java进阶(三十一) Web服务调用前言 有朋友问了一个问题:如何调用已知的音乐服务接口,服务文档如下: https://www.evernote.com/shard/s744/sh/c37cd503-68fc-4406-b8f2-5e90095be303/19b67e36aa2ccd19 查看代码之后,按照以往的服务调用方法实现,结果无法实现。很是费解,求教大师兄之后,问题,迎刃而解,只能说自己需要学习的地方还有很多。 完整代码如下:package plan.http.util;import java.io.IOExcepti...
一、动态代理概述: 与静态代理对照(关于静态代理的介绍 可以阅读上一篇:JAVA设计模式之 代理模式【Proxy Pattern】), 动态代理类的字节码是在程序运行时由Java反射机制动态生成。
注意:
1、AspectJ是采用编译时生成AOP代理类,具有更好的性能,但是需要使用特定的编译器进行处理 2、Spring AOP采用运行时生成AOP代理类,无需使用特定编译器进行处理,但是性能相对于AspectJ较差二、JDK动态代理 [对有实现接...
Java基础1、List 和 Set 的区别2、HashSet 是如何保证不重复的3、HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)?4、HashMap 的扩容过程5、HashMap 1.7 与 1.8 的 区别,说明 1.8 做了哪些优化,如何优化的?6、final finally finalize7、强引用 、软引用、 弱引用、虚引用8、Java反射9、Arrays.sort 实现原理和 Collection 实现原理10、LinkedHashMap的应用11、cloneable接口实现原理12、异常分...
1.Map主要实现类 HashMap<K,V>(无序集合) 集合底层是哈希表 由数组加单向链表或红黑树HashMap主要子类 LinkedHashMap<K,V> (可预知的迭代顺序)集合底层是哈希表加链表 存储和取出元素的顺序是一致的Map接口中定义了很多方法,常用的如下:(1)public V put(K key, V value) : 把指定的键与指定的值添加到Map集合中。 存键值对的时候,key不重复,返回值V是null 存键值对的时候,key重复,会使用新的value替换旧的,返回...
BIO、NIO、AIONIO vs IO之间的理念上面的区别(NIO将阻塞交给了后台线程执行)
IO是面向流的,NIO是面向缓冲区的
Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方;NIO则能前后移动流中的数据,因为是面向缓冲区的IO流是阻塞的,NIO流是不阻塞的
Java IO的各种流是阻塞的。这意味着,当一个线程调用read() 或 write()时,该线程被阻塞,直到有一些数据被读取,或数据完全写入。该线程...
一、Class类1、类是对象,类是java.lang.Class类的实例对象,这个对象称为该类的类类型;2、任何一个类都是Class的实例对象,类的表达式: (1)Class c1 = int.Class; (2) Class c2 = c1.getClass(); (3) Class c3 =null; c3 = Class.forName ("com.imooc.reflect.Foo");3、任何一个类都有一个隐含的静态成员变量;4、创建类类型创建该类的实例对象: c1.newInstance();//需要进行强制类型转换,前提是需要有无参数的构...
首先来了解一下jvm(java虚拟机)中的几个比较重要的内存区域方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息、常量、静态变量以及方法代码的内存区域,叫做方法区。
常量池:常量池是方法区的一部分,主要用来存放常量和类中的符号引用等信息。
堆区:用于存放类的对象实例。
栈区:也叫java虚拟机栈,是由一个一个的栈帧组成的后进先出的栈式结构,栈桢中存放方法运行时产生的局部变量、方法出口等信息。当调用一个...
Java:进阶学习(1)——网络编程基础Socket与ServerSocketSocket又称"套接字",网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。Socket方法getInetAddress(); 远程服务端的IP地址getPort(); 远程服务端的端口getLocalAddress() 本地客户端的IP地址getLocalPort() 本地客户端的端口getInputStream(); 获得输入流getOutStream(); 获得输出...
前言
? 关于设计模式的文章就到这里了,学习这门多设计模式,你是不是有这样的疑惑,发现很多设计模式很类似,经常会混淆某些设计模式。这章节我们将对设计模式做一个总结,看看各类设计模式有什么区别。需要注意的是,设计模式在于理解,不在于形式。不要为了套用设计模式而使用设计模式,而是,在业务上遇到问题时,很自然的想到设计模式作为一种解决方案。本章节参考资料书籍《Spring 5核心原理》中的第一篇 Spring 内功心法(S...
面试题
如何保证缓存与数据库的双写一致性?
面试官心理分析
你只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题?
面试题剖析
一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不是严格要求 “缓存+数据库” 必须保持一致性的话,最好不要做这个方案,即:读请求和写请求串行化,串到一个内存队列里去。
串行化可以保证...
Object类9大方法是哪些1、Clone方法实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常Java里参数传递,除了8种基本类型是值传递。其他类对象都是引用传递。
2、getClass方法final方法,获得运行时类型。
3、toString方法该方法用得比较多,一般子类都有覆盖。
4、finalize方法该方法用于释放资源。因为无法确定该方法说明时候调用,很少使用。
5、equals方法
6、hashCode方法该...
HashSet和TreeSet集合Set单列集合接口特征:
1 无序:存和取的顺序不一定一致。
2 不可以存储重复元素(重点研究为什么不能存储重复元素)
3 没有索引,不能使用fori遍历,只能使用增强for循环遍历。hash值的作用:默认前情况下用来表示对象在内存中的地址,一般情况下不同的对象hash值是不一样的,所以我们常说地址值不一样。除非重写了hashCode()方法hash值才可能一。HashSet集合(重点)
特点;底层使用哈希表结构(数组中存放链表...
package cn.edu.ujn.util;import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import cn.edu.ujn.base.Const;
import cn.edu.ujn.dao.UserDao;...
TABLE table_name
(field1 datatype,field2 datatype,field3 datatype,
)character set 字符集 collate 校对规则
field:指定列名
datatype:指定列类型
练习
创建一个名称为mydb1的数据库。
create database mydb1;
创建一个使用utf8字符集的mydb2数据库。
create database mydb2 character set ‘utf8’;
创建一个使用utf8字符集,并带校对规则的mydb3数据库。
create database mydb3 character set ‘utf8’ collate ‘...
database day16;use day16;create table dept(did int primary key auto_increment,dname varchar(30));create table emp(eid int primary key auto_increment,ename varchar(20),salaly double,dno int);insert into dept values(null,‘研发部‘);insert into dept values(null,‘销售部‘);insert into dept values(null,‘人事部‘);insert into dept values(null,‘扯淡部‘);insert into dept values(null,‘牛宝宝部‘);ins...