![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA SE
AndyAtcsdn
这个作者很懒,什么都没留下…
展开
-
Java Socket 是什么
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个双向链路的一端称为Socket,另一端称为ServerSocket。socket也称为套接字。Java中有两种类型的socket:①面向连接的socket通信协议(TCP协议,Transmission Contral Protocol 传输控制协议)②面向无连接的socket通信协议(UDP协议,User Datagram Protocol...原创 2018-09-13 19:50:50 · 981 阅读 · 0 评论 -
Java中的冷僻知识点汇总(持续更新中)
1. 接口中可以定义内部类,默认使用 public static 修饰,就是说接口内部类只能是静态内部类。2. 接口中可以定义内部接口,内部接口是接口的成员。(尽管这样做没有意义,实际开发中也很少见到这种应用场景)。3. DMA:Direct Memory Access (直接存储器访问)4. 代码块如果有修饰符,只能是static。而且代码块中可以有输出语句。非静态代码...原创 2018-09-14 13:31:59 · 478 阅读 · 0 评论 -
Java序列化讲解
Java提供了两种对象实例化的方式:①序列化②外部序列化一、序列化实现方式: 通过实现Serializable接口实现对象的序列化。序列化特点:(重点)①如果一个类被序列化,那么它的子类也能够被序列化。 ②由于static代表类的成员,transient代表对象的临时数据,因此被声明为这两种类型的数据成员是不能被序列化的。序列化的优缺点:优点:序列化可以将对象的状态写...原创 2018-09-14 23:59:21 · 158 阅读 · 0 评论 -
Java中的堆和栈
在Java语言中,堆和栈都是内存中存放数据的地方。变量分为基本数据类型和引用类型,基本数据类型的变量以及对象的引用变量,其内存分配在栈上,变量出了作用域就会自动释放。引用类型的变量,其内存分配在堆上或是常量池(常量<字符串常量和基本数据类型常量>)中,需要通过new等方式进行创建。简言之:栈内存主要用来存放基本数据类型和引用变量。堆内存主要用来存放运行时创建的对象(new关...原创 2018-09-16 00:40:29 · 59 阅读 · 0 评论 -
Vector、ArrayList和LinkedList区别
前言:Vector、Array List和LinkedList都是来自java.util包中,均为可伸缩数组,即可动态改变长度的数组。区别:1、实现方式1) ArrayList和Vector的底层都是用Object[ ] array实现的,在内存中开辟一块连续的空间来存储,因此他们支持用序号(下标)来访问元素,索引数据的速度比较快,但是插入元素时需要移动容器中的元素,插入数据的速...原创 2018-09-20 15:36:33 · 67 阅读 · 0 评论 -
HashMap、Hashtable、TreeMap和WeakHashMap区别
前言:HashMap、Hashtable、TreeMap都是java.util.Map接口的实现类,都是通过key-value存储。不同的是,TreeMap同时又实现了SortMap接口,能够把它保存的记录根据键排序。WeakHashMap是HashMap的一个子类。HashMap对比Hashtable、ConcurrentHashMap:HashMap是Hashtable的轻量级实现...原创 2018-09-20 16:24:27 · 252 阅读 · 0 评论 -
用自定义类型作为HashMap或Hashtable的key
HashMap 和 Hashtable 时用来存放键值对的一种容器,不能存储重复的键。若有重复,则覆盖原来的映射关系。HashMap添加元素的操作过程:首先,调用key的hashCode( ) 方法生成一个 hash 值 h1,如果在HashMap中不存在,则直接将<key, value>添加到HashMap中;如果这个 h1 已经存在,则找出HashMap中所有hash值...原创 2018-09-20 17:01:02 · 716 阅读 · 0 评论 -
String类的内存解析
判断下面的代码class Person{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return ...原创 2018-09-20 22:59:20 · 205 阅读 · 0 评论 -
包装类的注意事项
1、包装类的默认初始化是null,而不是基本类型的具体值2、JDK5.0以后有了自动装箱和自动拆箱3、包装类可以传入String类型的值初始化一个对象:如Float f = new Float("12.3f");特别注意:Boolean特殊,传入的值除可以是 Boolean b = new Boolean("true");或是new Boolean("false");除"true"...原创 2018-09-21 01:31:26 · 548 阅读 · 0 评论 -
Java集合
集合的继承关系:collection-------Set-------------EnumSet HashSet--------------LinkedHashSet SortedSet (I)----------...原创 2018-09-22 15:42:18 · 119 阅读 · 0 评论 -
多线程的同步机制的实现方法
Java提供了三种实现同步机制的方法:(1)synchronized 关键字Java语言中,每个对象都有一个对象锁与之关联,该锁表明对象在任何时候只允许被一个线程所拥有,当一个线程调用一段synchronized代码时,需要先获取这个锁,然后去执行相应的代码,执行结束,释放锁。①synchronized 方法在方法生命前加上synchronized关键字修饰。当一个方法的方法体比...原创 2018-09-22 17:17:55 · 639 阅读 · 0 评论 -
JDBC与Hibernate的区别
Hibernate是对JDBC的封装,采用配置文件的形式将数据库的连接参数写到XML文件中,至于对数据库的访问还是通过JDBC来完成的。Hibernate是一个持久化层框架,它将表的信息映射到XML文件中,再从XML文件映射到相应的持久化类中,这样可以使用Hibernate独特的查询语句(Hibernate Query Language,HQL)了。Hibernate的HQL查询结果返回的是L...原创 2018-09-22 19:01:43 · 230 阅读 · 0 评论 -
Java中数组是不是对象
数组是指具有相同数据类型的数据的集合,一般有固定的长度,并且在内存中占据连续的空间。在C/C++语言中,数据名只是一个指针,这个指针指向了数据的首元素,没有属性可以调用。而在Java语言中,数组不仅有自己的属性(length属性),还有自己的方法(clone方法)。从面向对象封装性的思想来看,数组是对象。数组类型可以通过instanceof来判断数据的类型。public class Test...原创 2018-09-13 16:59:28 · 2541 阅读 · 0 评论 -
String、StringBuffer、StringBuilder、StringTokenizer区别
String、StringBuffer、StringBuilder、StringTokenizer区别Java语言有4个类对字符或字符串进行操作:Character、String、StringBuffer、StringTokenizer。这其中Character对单个字符操作,StringTokenizer是对字符串分割操作的工具,剩下的String、StringBuffer、Stri...原创 2018-09-13 16:47:29 · 209 阅读 · 0 评论 -
Java初始化顺序
有如下代码:class A { public A() { System.out.println("class A"); } { System.out.println("I'm A class"); } static { System.out.println("class A static"); ...原创 2018-09-16 01:49:23 · 98 阅读 · 0 评论 -
Java中swing和awt的对比
Swing是一个基于Java的跨平台MVC框架。使用单线程模式。 Swing 是为了解决 AWT 存在的问题而新开发的包,它以 AWT 为基础的 Swing是一个基于组件的框架,所有的组件都是从javax.swing.JComponent类继承来的 AWT 是基于本地方法的C/C++程序,其运行速度比较快;Swing是基于AWT的Java程序,其运行速度比较慢。 AWT的控件在不同的平...原创 2018-09-16 02:03:09 · 1668 阅读 · 0 评论 -
从头到尾打印链表
题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。完成下面的函数:/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* ...原创 2018-09-17 11:04:55 · 226 阅读 · 0 评论 -
斐波那契数列问题
斐波那契数列(Fibonacci sequence),又称为黄金分割数列、因数学家里昂那多*斐波那契以兔子繁殖为例子而进入,故又称为“兔子数列”,数列:1、1、2、3、5、8、13、21、34、.......表达式:F(1) = 1;F(2) = 1;F(n) = F(n-1)+F(n-2);黄金分割数列:当 n 无限增大时,前一项与后一项的比值无限接近黄金分割比:0.618...原创 2018-09-16 19:06:20 · 941 阅读 · 0 评论 -
JSP四大作用域说明
JSP的四大作用域:①page ②request ③session ④application。 其中page作用域最小,application作用域最大。存储在application对象中的属性可以被同一个Web应用程序中的所有Servlet和Jsp页面访问(属性作用范围最大)存储在session对象中的属性可以被同一个会话的所有Servlet和Jsp页面访问。存储在reques...原创 2018-09-17 00:02:11 · 1733 阅读 · 0 评论 -
深入理解Java的多态机制
今天复习Java的基础,看到了Java的多态,借助复习资料在此总结一下1、多态的概念:多态是面向对象程序设计的一个重要机制。2、多态在Java语言中的表现形式:1)方法的重载(overload):重载是指同一个类中有多个同名的方法,但这些方法有不同的参数列表,参数个数或是参数类型不同,因此在编译时就可以确定到底调用哪个方法,它是一种编译时多态。重载可以被看作是一个类中的方法多态...原创 2018-09-12 23:47:09 · 187 阅读 · 0 评论 -
Java内部类分类总结
内部类(Inner Class)学习知识点总结:1、概念把一个类定义到另一个类的内部的类就叫内部类,内部类可以看作是外部类的一个成员(与类的属性和方法类似)。内部类一样可以有自己的子类,可以被继承。2、分类①静态内部类(static inner class)静态内部类是指被static修饰的内部类,它可以不依赖与外部OuterClass类的实例而实例化,类似与静态函数,静态...原创 2018-09-13 00:34:21 · 353 阅读 · 0 评论 -
Arrays.asList() 返回的list不能add,remove
一.Arrays.asList() 返回的list不能add,removeArrays.asList()返回的是List,而且是一个定长的List,所以不能转换为ArrayList,只能转换为AbstractList原因在于asList()方法返回的是某个数组的列表形式,返回的列表只是数组的另一个视图,而数组本身并没有消失,对列表的任何操作最终都反映在数组上. 所以不支持remove,ad...转载 2018-09-17 13:19:34 · 4280 阅读 · 0 评论 -
Java基本数据类型以及由不可变类带来的值传递和引用传递的难点分析
一、Java提供的数据类型Java提供了8中原始的数据类型(byte,short,int,long,float,double,char,boolean),这些数据类型不是对象,相应的变量被定义后会立刻在栈上被分配内存空间。除此之外的数据类型,都是引用类型,引用类型在变量被声明时不会被分配内存空间,只是存储了一个内存地址而已。其实严格意义上讲,Java在8中数据类型外还提供了一种基本数据类型vo...原创 2018-09-13 11:01:29 · 4304 阅读 · 0 评论 -
如何判断一个字符串中有没有中文
原理分析:Java语言中,默认使用Unicode编码方式,即每个字符占用两个字节,因此Java中char可以用来存中文。String也是由char所组成的,但是String采用一种更灵活的存储方式,即英文占用一个字节,中文占用两个字节,这样做减少了所需资源的存储空间,提高了存储效率。利用String的这个存储特性可以用来判断String中有没有中文。if(str.length() ==...原创 2018-09-13 11:44:10 · 7328 阅读 · 0 评论 -
Java集合框架图
转载 2018-09-18 19:14:08 · 283 阅读 · 0 评论 -
值传递和引用传递
引用数据类型是引用类型(call by reference)基本数据类型是值传递(call by value)值传递不可以改变原变量的内容和地址:原因是Java方法的形参都是传递原变量的副本,在方法中改变的是副本的值。引用传递不可以改变原变量的地址,但是可以改变原变量的内容:原因是当副本的引用改变时,原变量的引用并没有发生变化,当副本改变内容时,由于副本引用指向的是原变量的地址空...原创 2018-09-22 22:40:43 · 132 阅读 · 0 评论