java service
来源:互联网 发布:根据网络安全法的规定 编辑:程序博客网 时间:2024/06/05 06:54
http://blog.csdn.net/allinornothing/article/details/46505245
//看到这个文章不错,各位想转服务器的可以看看
http://www.cnblogs.com/jycboy/p/6227193.html
http://blog.csdn.net/ld0807/article/details/61915006?v=6
http://geek.csdn.net/news/detail/209207
https://my.oschina.net/u/3518116/blog/1142626
http://blog.csdn.net/feng2qing/article/details/60968548
//Spring框架 环境配置
http://blog.csdn.net/Love_Beauty/article/details/53611422
http://blog.csdn.net/dreamcatchergo/article/details/8108467
http://www.roncoo.com/article/detail/129525
*java的一些配置,首先Eclipse下载,tomcat下载并安装集成到eclipse,但是由于我是新手两天才搞出来,还是看到了一个博客才联想到的,主要是路径要对,安装这些都好说,所有的都要求细心,,部署静态网页的话放在webapps/root下面,链接路径要显示后缀。eclipse集成tomcat要在tomcat9.0下而不是其他目录下,配置好之后在我公司的局域网下可以使用但是一到外网就不行了,后来问了服务器开发人员说是没有静态IP*
1:设计理念区别
抽象类:被继承体现的是:”is a”的关系。在抽象类中定义的一般是共性功能
接口:被实现体现的是:”like a”的关系。在接口中定义的一般是扩展功能
2.接口中的所有方法均为抽象方法,抽象类中包含非抽象方法和抽象方法。如果一个类实现了接口,那么该子类必须实现父接口的所有方法。如果一个类继承了抽象类,那么该子类必须实现抽象类的所有抽象方法。
/**匿名内部类**/
3.只要一个类是抽象的或是一个接口,那么其子类中的方法都可以使用匿名内部类来实现
最常用的情况就是在多线程的实现上,因为要实现多线程必须继承Thread类或是继承Runnable接口
4.
- 为什么会有泛型呢?
- 通过案例引入
- 早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题。也就存在这隐患,所以Java提供了泛型来解决这个安全问题。
- 泛型类
- 把泛型定义在类上
- 格式:public class类名<泛型类型1,…>
- 注意:泛型类型必须是引用类型
- 泛型方法
- 把泛型定义在方法上
- 格式:public <泛型类型>返回类型 方法名(泛型类型.)
- 泛型接口
- 把泛型定义在接口上
- 格式:public interface接口名<泛型类型1…>
5.数据结构/java数据结构
(1):线性结构:数据结构中的元素存在一对一的相互关系
(2):树形结构:数据结构中的元素存在一对多的相互关系
(3):图形结构:数据结构中的元素存在多对多的相互关系
线性表是最简单、最基本、也是最常用的一种线性结构。线性表是具有相同数据类型n(n>=0)个数据元素的有限序列,通常记为: (a1,a2,… ai-1,ai,ai+1,…an) ,其中n为表长, n=0 时称为空表。 它有两种存储方法:顺序存储和链式存储,它的主要基本操作是插入、删除和检索等。
java
- Collection接口概述
- Collection 层次结构中的根接口。Collection表示一组对象,这些对象也称为collection的元素。一些collection允许有重复的元素,而另一些则不允许。一些collection是有序的,而另一些则是无序的。
- Iterator接口概述
- 对 collection进行迭代的迭代器
- 依赖于集合而存在
- Vector类概述
- 底层数据结构是数组,查询快,增删慢
- 线程安全,效率低
- Vector类特有功能
- public void addElement(E obj)
- public E elementAt(int index)
- public Enumeration elements()
- Vector案例
- 存储字符串并遍历
- 存储自定义对象并遍历
- 底层数据结构是数组,查询快,增删慢
- 线程不安全,效率高
- ArrayList案例
- 存储字符串并遍历
- 存储自定义对象并遍历
- LinkedList类概述
- 底层数据结构是链表,查询慢,增删快
- 线程不安全,效率高
- LinkedList类特有功能
- public void addFirst(E e)及addLast(E e)
- public E getFirst()及getLast()
- public E removeFirst()及public E removeLast()
- LinkedList案例
- 存储字符串并遍历
- 存储自定义对象并遍历
- HashSet类概述
- 不保证 set的迭代顺序
- 特别是它不保证该顺序恒久不变。
- HashSet如何保证元素唯一性
- 底层数据结构是哈希表(元素是链表的数组)
- 哈希表依赖于哈希值存储
- 添加功能底层依赖两个方法:
- int hashCode()
- boolean equals(Object obj)
- LinkedHashSet类概述
- 元素有序唯一
- 由链表保证元素有序
- 由哈希表保证元素唯一
- TreeSet类概述
- 使用元素的自然顺序对元素进行排序
- 或者根据创建 set时提供的Comparator进行排序
- 具体取决于使用的构造方法。
- TreeSet是如何保证元素的排序和唯一性的
- 底层数据结构是红黑树(红黑树是一种自平衡的二叉树)
- Collection
- List
- ArrayList
- Vector
- LinkedList
- Set
- HashSet
- TreeSet
- Map接口概述
- 将键映射到值的对象
- 一个映射不能包含重复的键
- 每个键最多只能映射到一个值
- Map接口和Collection接口的不同
- Map是双列的,Collection是单列的
- Map的键唯一,Collection的子体系Set是唯一的
- Map集合的数据结构值针对键有效,跟值无关
Collection集合的数据结构是针对元素有效
- HashMap
LinkedHashMap
- TreeMap
Java Thread 线程
Java中的多线程是一种抢占机制而不是分时机制。抢占机制指的是有多个线程处于可运行状态,但是只允许一个线程在运行,他们通过竞争的方式抢占CPU。
System.out.println(e),这个方法打印出异常,并且输出在哪里出现的异常,不过它和另外一个e.printStackTrace()方法不同。后者也是打印出异常,但是它还将显示出更深的调用信息。
先敲“/”在敲两个**,然后回车,快速注释
java 中关于set()和fet()方法的理解和使用
我们先来看看set和get这两个词的表面意思,set是设置的意思,而get是获取的意思,顾名思义,这两个方法是对数据进行设置和获取用的。而且,在类中使用set和get方法时,都是set和get后面跟上一些特定的词来形成特定意思的方法名,比如setage()和getage(),表示设置年龄和获取年龄。
然后我们来了解一下java面向对象编程中的封闭性和安全性。封闭性即对类中的域变量进行封闭操作,即用private来修饰他们,如此一来其他类则不能对改变量访问。这样我们就将这些变量封闭在了类内部,这样就提高了数据的安全性,当我们想要操作这些域变量怎么办呢?我们可以通过两种方法,第一种即通过public方式的构造器(或称构造函数),对象一实例化就对该变量赋值。第二种就是通过上面提到的set和get()方法,这里我举一个特定的例子,我定义一个person类,该类中有name,age这两个私有域变量,然后我定义setname()、getname()、setage()、getage()这四个方法,通过这四个方法来实现对name和age的操作。这样一来,我不用直接对person类中的域变量操作,而是通过set和get方法间接地操作这些变量,这样就能提高域变量的安全性,同时又保证了域变量的封装型。
最后说说set和get方法的使用场景,一般来说set和get方法都是对私有域变量进行操作的,所以大多数都是使用在包含特定属性的类实体中。
现在你明白set和get方法了吧,其实这两个方法只是类中的set和get方法的总称。
在今后的开发过程中,只要你细心体会,结合java中的一些宏观的知识。set和get方法还是容易理解的,或许你还会领会一些其他的JAVA中的重要理论知识
java 中的import机制(指定import和import*的区别)
java 中有两种包的导入机制,总结如下
单类型导入(single-type-import),例如import java.io.File;
按需类型导入(type-import-on-demand),例如 import java.io.*;
单类型导入比较好理解,仅仅导入一个public 类或者接口。
对于按需类型导入,有人误解为导入一个包下的所有类,其实不然,看名字就知道,他只会按需导入,也就是说它并非导入整个包,而仅仅导入当前类需要使用的类。
既然如此是不是就可以放心的使用按需类型导入呢?非也,非也。
因为单类型导入和按需类型导入对类文件的定位算法是不一样的。java编译器会从启动目录(bootstrap),扩展目录(extension)和用户类路径下去定位需要导入的类,而这些目录仅仅是给出了类的顶层目录。编译器的类文件定位方法大致可以理解为如下公式:
顶层路径名\包名\文件名.class =绝对路径
对于单类型导入很简单,因为包名和文件名都已经确定,所以可以一次性查找定位。对于按需类导入则比就复杂,编译器会把包名和文件名进入排列组合
然后对所有的可能性进行类文件查找定位.
例如:
package com;
import java.io.*;
import java.util.*;
当你的类文件中用到了File类,那么可能出现File类的地方如下
File \\ File类属于无名包,就是说File类没有package语句,编译器会首先搜索无名包
com.File \\ File类属于当前包
java.lang.File \\ 编译器会自动导入java.lang包
java.io.File
java.util.File
需要注意的地方就是,编译器找到java.io.File类之后并不会停止下一步的寻找,而要把所有的可能性都查找完以确定是否有类导入冲突。假设此时的顶层路径有三个,那么编译器就会进行3*5=15次查找。
注意:如果在查找完成后,编译器发现了两个同名的类,那么就会报错。要删除你不用的那个类,然后再编译。
了解以上原理之后,我们可以得出这样的结论:按需类型导入是绝对不会降低Java代码的执行效率的,但会影响到Java代码的编译速度。
查看JDK的源代码就知道SUN的软件工程师一般不会使用按需类型导入。因为使用单类型导入至少有以下两点好处:
1。提高编译速度。
2。避免命名冲突。(例如:当你import java.awt.*;import java.util.*后,使用List的时候编译器将会出编译错误)
当然,使用单类型导入会使用你的import语句看起来很长。
在Java诞生初期,垃圾回收是Java最大的亮点之一,因为服务器端的编程需要有效的防止内存泄露问题,然而时过境迁,如今Java的垃圾回收机制已经成为被诟病的东西。移动智能终端用户通常觉得iOS的系统比Android系统有更好的用户体验,其中一个深层次的原因就在于android系统中垃圾回收的不可预知性。
jvm回收
http://geek.csdn.net/news/detail/236894
java多线程
https://mp.weixin.qq.com/s?__biz=MzI4Njc5NjM1NQ==&mid=2247483698&idx=1&sn=2cc8da03472d6c2a796312bf04680058&chksm=ebd63e1edca1b7084fdbb118570445aab00ad7a079c261c6c5d5088a6cefb4cb2748cc2474b4&scene=0#rd
- Java Service
- java service
- Java Web Service Studying
- 【Java开源Web Service】
- Java Message Service入门
- Java Message Service 介绍
- Java Message Service (JMS)
- java访问web service
- JAVA web service --- overview
- java 调用 Web Service
- Java开源 Web Service
- Java Message Service 总结
- Abdroid JAVA service
- java Web Service
- Java Web Service
- web service for java
- Java Service Wrapper 使用
- Java Web Service
- 第三、Java的运算符
- 基于Github Pages+Jeykll 搭建个人博客
- 总结目前所学1
- FishC笔记—12 讲 列表:一个打了激素的数组3
- 上传图片、文件
- java service
- nGrinder 的 Groovy 脚本使用指南(HTTP 请求详解)
- java 实现简单的邮件发送
- git add *的时候遇到warning: LF will be replaced by CRLF in folder/ 举报本内容
- zTree学习
- linux 命令总结
- boosting算法
- Java HashMap 遍历并删除匹配项
- UNIX IPC