Java基础入门
学习笔记666
这个作者很懒,什么都没留下…
展开
-
最简集成SpringMVC、纯手工打包部署到tomcat
前面已经介绍了tomcat,了解了其简单的部署方法;以及Listener、Filter、Servlet的概念,并且自己写了写,实现了网站的简单访问。注意到了这里和我们的SpringMVC还完全没有关系。 今天来看怎么集成SpringMVC到我们的项目中SpringMVC文档地址; https://docs.spring.io/spring/docs/current/spring-fra原创 2018-01-09 09:02:18 · 17336 阅读 · 0 评论 -
ArrayList的线程不安全问题
前面我们学了ArrayList和LinkedList,回顾学习地址: http://blog.csdn.net/github_26672553/article/details/75006230Thread类该类继承接口Runnable,启动一个线程代码案列。Thread t = new Thread();t.start();//这个方法是代表启动一个线程只不过上面代码就这样写 没有什么意义。ne原创 2017-08-14 17:20:30 · 461 阅读 · 0 评论 -
HashMap和HashSet、hashcode
在Java中集合除了有Collection还有Map。Collection包括:List(ArrayList、LinkedList、Vector)、Queue、Set Map包括:HashMap、HashTable、TreeMap、WeakHashMap。HashMap线程不安全 Map<String,String> map = new HashMap<String,String >原创 2017-08-14 11:15:23 · 601 阅读 · 0 评论 -
使用字节流、客户端读取图片发送至服务端保存
客户端: // 创建客户端 Socket client = new Socket("127.0.0.1",9000); // 要向服务端发送数据,就要获取输出流 OutputStream outputStream = client.getOutputStream(); Buffered原创 2017-08-16 12:55:15 · 1239 阅读 · 0 评论 -
使用字符流、客户端读取文本文件发送至服务端
前面我们socket客户端发送你好a我是客户端这样的字符串给服务端,服务端接受的数据有了乱码。你好a�����������这是因为每次读取的字节限制。数据乱码不代表数据丢失了。字符流在字节流的概念里,OutputStream是输出,InputStream是输入。字符流中,有2个抽象类分别是Reader和Writer。 抽象类派生的子类,是我们编码中需要使用的。 1、客户端原创 2017-08-16 11:31:42 · 1306 阅读 · 0 评论 -
Java集合:ArrayList、LinkedList
我们前面学习了数组比如String[]数组,同样我们还学习了老外提供给我们的Arrays类,可以对数据进行一些方便的操作。 然而业务上仅仅是纯数组,但是依然不能满足我们的要求。 因此老外又帮我们贴心的设计了一系列『接口+类』,叫做『集合』。两大接口: 1、Collection 2、Map 都存在于java.util包里。我们先讲Collection这玩意儿下面还包含了3个主接口: Lis原创 2017-07-12 10:23:52 · 320 阅读 · 0 评论 -
数组排序:内部类
内部类顾名思义就是:在一个类内部再来一个类。 我们还是来改造MyCompare这个类,这是一个母类。 内部包含DescCompare和AscCompare分别代表 降序和升序排列。 实例化时先要有外部类对象,然才能有内部类的实例化。所以内部类里面也不能有啥静态方法import java.util.Comparator;public class MyCompare{ // 降序原创 2017-06-22 15:58:43 · 525 阅读 · 0 评论 -
数组自定义排序、泛型
我们使用过数组,如String[] strs = {"xxx","aaa","kkkk"}使用sort()方法对数组排序:Arrays.sort(strs);遍历:for (String s : strs){ System.out.println(s);}sort()默认排序:如果是字符串默认安装字母从a-z,如果是数字默认从小到大。sort方法的第2个参数Arrays.sort(strs,第原创 2017-06-22 11:40:37 · 999 阅读 · 0 评论 -
maven速学:创建maven项目、下载远程jar、用mvn运行项目
安装maven之前我们已经了解过Ant构建工具: http://blog.csdn.net/github_26672553/article/details/72779517 那么学习maven也并不难。1、官网下载: http://maven.apache.org/download.cgiwget http://apache.fayea.com/maven/maven-3/3.5.0/sour原创 2017-06-05 17:04:58 · 416 阅读 · 0 评论 -
进一步了解Ant项目构建
进一步了解Ant项目构建工具前面我们知道如果要运行项目的时候,使用jar,需要: java -cp lib/news.jar:target me其实我们可以把需要用到的jar文件写到build.xml这个ant配置文件中<?xml version="1.0"?><project name="javatest" basedir="."> <!-- set global properties原创 2017-05-27 13:58:53 · 362 阅读 · 0 评论 -
Ant构建工具入手、愉快的编译
Ant构建工具入手前面学习了手工的方式编译、打包为jar,,,, 实际项目开发中每次都这样就太麻烦了,所以我们需要一些能帮助我们快速构建的工具。 比如 Ant、Maven、Gradle。我们现在来学习其中之一:Ant http://ant.apache.org 下载地址: http://ant.apache.org/bindownload.cgi 我们这里下载1.10.1版本(jkd要求原创 2017-05-27 12:43:50 · 7555 阅读 · 0 评论 -
手工引用jar包、凭什么jar要放到lib中
jar文件怎么用接着前面的项目代码: http://blog.csdn.net/github_26672553/article/details/72769798 在target目录中有:me.class、my目录、news目录、news.jar。 我们既然已经把news目录打包成了news.jar文件,是不是可以删除news目录也没有问题呢?#但是运行 java me 报错了Exceptio原创 2017-05-26 17:04:52 · 1883 阅读 · 0 评论 -
classpath的作用、简单批处理自定义编译、第一个jar文件包的生成
classpath首先回顾下前面学到过的编译: 把源码文件和编译之后的文件分开 http://blog.csdn.net/github_26672553/article/details/72742919注意:我们在最后要运行me的时候是需要进入到target目录下cd target/java me按理说我们是可以直接在根目录下执行:java target/me#按理可以这样#运行原创 2017-05-26 15:42:37 · 772 阅读 · 0 评论 -
手工创建包(package)、有逼格的编译
1、能否在一个类中调用另一个类里的方法?me.java中写2个calss代码如下:class me{ public static void main(String[] args) { // 在me这个类里调用myname类的静态方法 myname.showName(); }}class myname{ public static原创 2017-05-25 20:39:00 · 762 阅读 · 0 评论 -
速识JDK、了解类
JVM、JRE和JDK的区别与联系 请自行百度: http://www.jb51.net/article/83970.htmJDK下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlLinux系统安装jdk: http://blog.csdn.net/git原创 2017-05-25 19:47:28 · 329 阅读 · 0 评论 -
Java中异常抛出和自定义异常
现在我们已经知道了什么是异常,也知道怎么去处理异常。 那么是如何抛出异常的呢?需要用到2个关键字:throw和throws。public void 方法名(参数列表) throws 异常列表 { //调用会抛出异常的方法 //或者 throw new Exception();}自定义异常class 自定义异常类 extends 异常类型{}我们自定义一个:public class D原创 2017-04-14 16:54:57 · 1757 阅读 · 0 评论 -
Java中使用try...catch以及try...catch...finally捕获异常
try{ //一些会抛出异常的代码}catch(Exception e){ //处理该异常的代码块}比如我们写一个接受用户输入年龄的功能: try{ System.out.println("请输入你的年龄:"); Scanner input = new Scanner(System.in); int a原创 2017-04-14 16:36:47 · 4949 阅读 · 1 评论 -
Java多态中的引用类型转换
我们在写java程序的时候,经常对我们的引用类型进行转换。 1.向上类型转换(隐式/自动类型转换),是小类型到大类型的转换 2.向下类型转换(强制类型转换),是大类型到小类型。 3.使用instanceof运算符,来解决引用对象的类型,避免类型转换的安全性问题 // 创建一个子类对象 Dog dog = new Dog(); // 可以用一原创 2017-04-14 15:02:54 · 1680 阅读 · 0 评论 -
synchronized同步代码块
前面了解了ArrayList线程不安全的问题,即使Vector也不是绝对线程安全的。 http://blog.csdn.net/github_26672553/article/details/77164120我们这里使用另外一个方法『解决ArrayList线程安全问题』#同步代码块synchronized (锁住的对象){ //要执行的任务}我们前面的案列是在子线程中循环很多次给list对原创 2017-08-15 10:20:55 · 265 阅读 · 0 评论 -
TreeMap、二叉树
前面我们学习了Collection下面有: 1、List(ArrayList、LinkedList、Vector),重点我们理解了线程安全和不安全 2、Set下面的HashSetMap下面的HashMap。 其中HashSet是基于HashMap实现的(就是HashMap的key,不重复)。TreeMap 我们使用HashMap加入一些数据,但这些数据不能排序。 Map<Str原创 2017-08-15 13:05:02 · 5072 阅读 · 0 评论 -
Java网络编程 - 认识socket
创建一个电话其实就类似于创建一个socket连接。1、socket服务端代码MyServer.java:import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;public class MyServer { // 入口函数 p原创 2017-08-15 15:25:44 · 359 阅读 · 0 评论 -
Listener监听器入门、手工整合Spring到自己的Servlet中、Maven打包依赖
1、前面已经学习了:自己写Servlet,自己写Filter。 现在学习:自己写Listener。套路其实都一样的(继承接口、重写方法;在web.xml中配置一下)。web.xml中加入: listener> listener-class>com.mydev.MyListenerlistener-class> listener> (新建的几个文原创 2018-01-06 16:38:39 · 1445 阅读 · 0 评论 -
简学tomcat:自己写个Filter
1、前面自己写了一个Servlet,初步了解了Servlet的概念。 现在学一下Filter,简单说就是过滤器,过滤器是在Servlet前面执行的。 可以有多个Servlet,当然也可以有多个Filter,多个Filter之间存在一个叫FilterChain的关系。 2、这个MyFilter就是接下来我们要写的过滤器,在这之前先完成一个配置,以使这个过滤器能够生效。 在我们网站配置文件原创 2018-01-06 14:12:05 · 3376 阅读 · 0 评论 -
简学tomcat:自己写个Servlet、纯手工部署一个动态网站
1、首先使用IDEA创建一个Java项目(基于maven,但不用任何maven模板) 比如,我们这里就叫myjavaweb 2、我们要自己写个Servlet,需要下载一个库:Java Servlet API。使用maven搞定 dependencies> dependency> groupId>javax.serv原创 2018-01-06 12:30:28 · 2559 阅读 · 0 评论 -
简学tomcat:war包部署、servlet入门、自定义访问后缀
war包一个很方便的部署方式——war包。 当做好网站后,可以使用war包直接甩到服务器上,tomcat启动后会自动解压。1、创建一个目录,比如test,里面放我们的网站页面 2、cd到刚才创建的这个test目录下,执行:jar -cvf test.war . 注意上面命令最后的点 “.”,代表当前目录下的所有文件都要打包 3、把test.war放到你tomcat配置的appB原创 2018-01-05 13:50:57 · 1754 阅读 · 0 评论 -
Hibernate Validator:自定义验证
前面已经学习到Hibernate Validator这个组件验证库,文档地址如下: https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#preface但有的时候,Hibernate Validator自带的不能满足需求,因此就需要我们自定义。 方法如下: 1、创建一个注解 2、实现对该注原创 2018-01-03 11:36:13 · 3973 阅读 · 0 评论 -
Spring Framework 5.0:Resources资源文件获取接口
如果我们把相关的资源文件放在resources里面,最后就会编译到target目录下。Resourceshttps://docs.spring.io/spring/docs/5.0.1.BUILD-SNAPSHOT/spring-framework-reference/core.html#resourcesSpring给我们封装了统一的接口,实现类有:ClassPathResourceFileSy原创 2017-12-19 11:39:55 · 381 阅读 · 0 评论 -
Spring Framework 5.0:@Controller、@Service、@Repository
回顾http://blog.csdn.net/github_26672553/article/details/78214223 http://blog.csdn.net/github_26672553/article/details/78793707 1、我们了解了什么是“注解” 2、通过注解的方式可以非常方便的加载组件Bean 3、使用包扫描的方式加载Bean@Configuration原创 2017-12-19 09:47:38 · 380 阅读 · 0 评论 -
Spring Framework 5.0:使用注解的方式来加载Bean、入门注解、了解java反射
使用注解的方式来加载beanhttp://blog.csdn.net/github_26672553/article/details/78214223 前面我们已经了解了IoC容器的概念,并且写了一个登录验证的案列,来演示了在Spring 框架中如何配置一个xml文件,然后加载这个文件,实现对登录验证条件的灵活设置。xml文件主要包含各种<bean>,并且还可以设置<bean>之间的依赖关系。我们原创 2017-12-13 17:23:40 · 415 阅读 · 0 评论 -
Spring Framework 5.0:组件的验证(Bean验证)、Hibernate Validator入门
组件的验证(Bean验证)package SpringLean.Users;import org.springframework.beans.factory.annotation.Autowired;// 这是我们的 用户实体类public class UserEntity { private int user_id; private String user_name; p原创 2017-12-22 15:52:00 · 520 阅读 · 0 评论 -
Spring Framework 5.0:入手Spring、IoC容器、用户数据验证案列
spring是什么?很多人听到spring,就里面想到做网站。实际上,做网站只是spring框架其中的一个小功能而已。Spring Framework官网介绍: https://projects.spring.io/spring-framework/#quick-start 注意:JDK 8+ for Spring Framework 5.x使用maven下载:<dependencies>原创 2017-10-12 14:07:25 · 448 阅读 · 0 评论 -
java中轻量级数据库ORM框架:JOOQ
1、使用maven下载 <!-- https://mvnrepository.com/artifact/org.jooq/jooq --> <dependency> <groupId>org.jooq</groupId> <artifactId>jooq</artifactId> <version>原创 2017-10-10 13:27:47 · 4257 阅读 · 0 评论 -
JDBC入门、简单SQL查询
1、先看下面代码try { Class.forName("com.mysql.jdbc.Driver"); // 获取数据库链接 Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1/test?characterEncoding=UTF-8","root","root");}catch (原创 2017-10-09 16:24:49 · 599 阅读 · 0 评论 -
什么是DataSource?入手tomcat-jdbc连接池
在前面我们已经实现了简单的SQL查询功能: http://blog.csdn.net/github_26672553/article/details/78183881在运行程序,连接mysql的时候,mysql的连接池会发生什么呢? 我们可以使用mysql的命令来查看:SHOW FULL PROCESSLIST;当我们的java程序连接上mysql的时候,这个SHOW FULL PROCESSL原创 2017-10-10 10:55:32 · 3414 阅读 · 0 评论 -
让我们的socket服务支持多线程
http://blog.csdn.net/github_26672553/article/details/77507797 前面我们了解了socket的概念,并且最后还用来模拟一个http协议。 之前我们的代码还是单线程的,也就是我们是socket服务是单线程的。我们前面学习ArrayList的是也了解过线程的概念,还演示了ArrayList的线程不安全问题。 文章地址: http://bl原创 2017-09-02 15:16:53 · 1310 阅读 · 0 评论 -
让浏览器可以访问我们的socket服务 (http协议入门)
在我们的web开发中,会是用到web服务器,比如:tomcat、apache等。其实它们就是功能做的很强大的socket服务。我们使用的数据库程序,包括一些和网络相关的软件都和我们的socket是有关系的。这中间产生的交互,很可能是通过某种协议来完成的。只不过有些协议好理解(http协议),有些软件专有的协议可能不太好理解。当我们在浏览器地址栏输入对应的IP地址,其实也就是浏览器创建了一个s原创 2017-08-23 16:33:52 · 11357 阅读 · 5 评论 -
Java中的 多态
多态:对象的多种形态1.引用多态 父类的引用可以指向本类的对象 父类的引用可以指向子类的对象 Animal animal = new Animal(); Animal animal1 = new Dog(); // 父类的引用是可以指向子类对象的 Dog dog = new Animal(); //错2、方法多态 Animal a原创 2017-04-14 10:39:12 · 397 阅读 · 0 评论 -
Java中 super关键字
super关键字:在对象的内部使用,可以代表父类对象。 1.访问父类的属性 super.age; 2.访问父类的方法 super.eat();新建java项目演示: Init.java 是项目入口文件:package com.mydev;public class Init { /** * 入口函数 * @param args */原创 2017-04-14 09:58:08 · 499 阅读 · 0 评论 -
Java中的 构造方法
我们之前在创建一个对象的时候,通过一个new关键字就可以把一个类实例化变成对象。Telphone telphone = new Telphone();其实我们上面的说法并不严禁,new后面跟的并不是类名,而是构造方法。 1.使用new+构造方法,创建一个新的对象构造方法:是定义在Java类中的一个用来初始化对象的方法。 和我们普通方法有什么不同:普通方法只是代表对象可以干什么;而构造方法可以原创 2017-04-13 15:10:54 · 514 阅读 · 0 评论 -
Java面向对象-枚举的定义和特点以及底层分析
枚举是从Java5开始提供的一种新的数据类型,是一个特殊的类,就是固定的多个常量对象定义格式:[修饰符] enum 枚举类名 { 常量A,常量B,常量C;}我们自定义的枚举类型,在编译后(底层),都是直接继承于java.lang.Enum类的。枚举类的特点1、枚举的直接父类是java.lang.Enum,但是不能显示的继承Enum 2、枚举就相当于一个类,可以定义构造方法、成员变量、普原创 2016-11-17 13:40:32 · 2353 阅读 · 0 评论