1.按照国际惯例,写一段输出HelloWorld的java语句: public class HelloWorld { //这是main方法,程序的主入口 public static void main(String[] args) { /* * 输出语句:System.out.println */ System.out.print("Hi "); System.out.println("Hello World"); } } 输出结果:Hi Hello World […
一.String类 想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码: public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; /** The offset is the first…
面向对象的核心概念:类和对象. 类:对一类事物描述,是抽象的.概念上的定义. 对象:实际存在的该类事物的每个个体,因而也成为实例(Instance). Java类及类的成员:属性(成员变量Field)和方法(method). 类对象的内存结构: Animal a1 = new Animal(); a1.name = "花花"; a1.age = 3; 之前梳理数组的时候说过,栈中的对象存放对象的引用及Animal a1的a1这个引用.堆空间都是new出的东西包括成员变量. ① 在栈中声…
创建多线程第一种方式:① 继承:继承Thread.② 重写:重写Thread类的run()方法③ 创建:创建一个子类的对象④ 调用:调用线程的start()方法,启动此线程,调用run()方法 class Work extends Thread{ //① 继承 @Override //② 重写 public void run() { for (int i = 1 ;i < 5; i++) { System.out.println(Thread.currentThread().getName()+…
变量之间的类型转换主要包括自动类型转换和强制类型转换. 1.自动类型转换:当容量小的数据类型与容量大的数据类型做运算时,容量小的会自动的转换成容量大的类型. [知识点]: a)char,byte,short ---> int ---> long ---> float ---> double ---> String char c = 'a'; short s = 12; byte b = 125; //char.short和byte之间运算全部自动转换成int int s1 =…
1.单行注释 // //这是main方法,程序的入口 public static void main(String[] args) { //输出语句 System.out.println("Hello World"); } 2.多行注释 /* */ /* * print和println区别 */ [知识点]:多行注释不能再嵌套多行注释 3.文档注释 /**     */ [知识点]:常见注释标签. 以下(1)(2)为类标签,(3)(4)(5)为方法标签. 1)@author    用在…
凡是与输入.输出相关的类.接口都定义在java.io包下 java.io.File类 1.File是一个类,可以有构造器创建其对象.此对象对应着一个文件或者一个目录. 2.File中的类,仅涉及到如何查找.创建.删除.重命名文件(.txt .jpg .java)或者目录(io\\io1).如果涉及到文件里的内容的,File是无能为力的,只能用io流. 3.File类的对象常作为io流的具体类的构造器的形参. 4.mkdir和mkdirs:都是创建文件目录,但是mkdirs在没有上层目录的时候把上…
enum Season{ SPRING("spring","春暖花开"), SUMMER("summer","夏日炎炎"), AUTUMN("autumn","秋高气爽"), WINTER("winter","白雪皑皑"); } 其实上面等等同于: class Season{ Public static final Season SPRING =…
一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: public class GenericTest { public static void main(String[] args) { List list = new ArrayList(); list.add("qqyumidi"); list.add("corn"); list.add(100); for (int i = 0; i < list.size(); i++) { S…
Java集合分为Collection和Map两种体系 一.Collection接口: Collections接口为我们提供了以下方法: size():返回集合中元素的个数 add(Object obj):向集合中添加一个元素 addAll(Collection coll):向集合中添加一个集合 isEmpty():判断集合是否为空 clear():清空集合元素 contains(Object obj):判断集合中是否包含指定的obj元素,如果包含true(判断依据:看元素的equals方法) c…
异常:将程序执行中发生的不正常情况(当执行一个程序时,如果出现异常,那么异常之后的代码就不在执行.) java.lang.Throwable:异常的超类 1.Error:java虚拟机无法解决的严重问题.如:JVM系统内部错误.资源耗尽等严重情况.一般无法通过编写代码处理. 2.Exception:因编码错误导致的一般性问题,可以使用针对性的代码进行处理. ① 编译异常:在编译期间会出现的异常,即在IDE环境中出现了红色的波浪线. ② 运行异常:在运行期间出现的异常. 处理异常 1.try ca…
Java为8种基本数据类型都提供了对应的包装器类型 装箱和拆箱: public class Main { public static void main(String[] args) { Integer i = 10;//装箱 int n = i;//拆箱 } } 装箱:基本数据类型转换成包装类. 实现:通过调用包装类的valueOf方法实现的 拆箱:包装类转换成基本数据类型. 实现:通过调用包装器的 xxxValue方法实现的(xxx代表对应的基本数据类型) 1)基本类型中的整数型: publ…
数组:数组是多个相同类型数据类型的集合,实现对这些数据的统一管理. 元素:数组中的元素可以是任何数据类型,包括基本数据类型和引用类型. 特点:属于引用类型,数组型数据是对象object,数组中的每个元素相当于对象的成员变量. 数组定义: 1.静态初始化声明数组: ① String[] names = new String[]{"gangge","pijiu","paopao"}; ② String[] names = {"gangge&…
分支结构(if…else .switch) 1.if else 语句格式 if(条件表达式){ 执行代码块; } else if(条件表达式){ 执行代码块; } else{ 执行代码块; } 2.switch语句 switch(变量){ case 常量值1: 语句1; break; case 常量值2: 语句2; break; case 常量值3: case 常量值4: case 常量值5: 语句5; break; default: 语句; break; } [知识点]: a)switch:在…
运算符:是一种特殊的符号,用以表示数据的运算.赋值和比较. 1.算数运算符(+.-.*./.%.++.--) a)除: int i = 12; double d1 = i / 5; //2.0 double d2 = (double)i/5; //2.4 double d3 = i/5.0; //2.4 b)前++和后++区别 前++:先自增一赋值给自己,后做运算赋值 后++:先做运算赋值,后自增一赋值给自己 int a = 10; int b = ++a; //a=11 b=11 int c…
1.8种基本数据类型 1)4种整数类型(byte.short.int.long) [知识点] 类型 存储空间 数值范围 byte 1字节=8位 -128-127 short 2字节 -2的15次方-2的15次方-1 int 4字节 -2的31次方-2的31次方-1 long 8字节 -2的63次方-2的63次方-1 a)整数的默认类型是int b)以上4种类型,只有long型必须要在末位加上L或者l,其它直接赋值数值即可. byte b1 = 12; byte b2 = 128; //报错 sh…
反射机制是什么?反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有的属性和方法:对于任意一个对象,都能够调用他的一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. 反射机制能做什么? 反射机制主要提供以下功能 √ 在运行时判断任意一个对象所属的类 √ 在运行时构造任意一个类的对象 √ 在运行时判断任意一个类所具有的的属性和方法 √ 在运行时调用一个对象的方法 √ 生成动态代理 通过一个对象获得完整的包名和类名 package com.hzg;…
1.Spring框架简介 Spring是一个开源框架,Spring是在2003年兴起的一个轻量级的开源框架,由Rod johnson创建.主要对JavaBean的生命周期进行管理的轻量级框架,Spring给JavaEE带来了春天. 2.Spring框架特点 √ 轻量级:不是说他的文件大小很小,指的Spring是非侵入性. 知识点:轻量级框架和重量级框架的区别 轻量级和重量级的框架是以启动程序所需要的资源所决定,比如EJB在启动程序的时候需要消耗大量的资源,内存和CPU,所以是重量级.√ 依赖注入…
Spring配置Bean有两种形式(XML和注解) 今天我们学习通过XML方式配置Bean 1. Bean的配置方式 通过全类名(反射)的方式   √ id:标识容器中的bean.id唯一. √ class:bean的全类名,通过反射的方式在IOC容器中创建Bean,所以要求Bean中必须有无参的构造器 2.依赖注入的方式 1)属性注入:通过setter方法注入Bean的属性值或依赖的对象 属性注入使用<Property>元素,使用name指定Bean的属性名称,使用value指定Bean的属…
Spring容器 启动Spring容器(实例化容器) -- IOC容器读取Bean配置创建Bean实例之前,必须对它进行实例化(加载启动),这样才可以从容器中获取Bean的实例并使用.  Bean是Spring管理的基本单位,任何的Java对象和组件都被当成Bean处理,容器还负责管理Bean与Bean之间的依赖关系.  两种类型的启动实现   1.BeanFactory:IOC容器的基本实现,是Spring框架的基础设施,面向Spring本身: -- Spring容器最基本的接口就是BeanF…
事务 事务用来保证数据的完整性和一致性. 事务应该具有4个属性:原子性.一致性.隔离性.持久性.这四个属性通常称为ACID特性.1.原子性(atomicity).一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做.2.一致性(consistency).事务必须是使数据库从一个一致性状态变到另一个一致性状态.一致性与原子性是密切相关的.3.隔离性(isolation).一个事务的执行不能被其他事务干扰.即一个事务内部的操作对并发执行的各个事务之间不能互相干扰.4.持久性(du…
Spring的JDBC框架 Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要提供JDBC模板方式.关系数据库对象化方式.SimpleJdbc方式.事务管理来简化JDBC编程 Spring提供了3个模板类: JdbcTemplate:Spring里最基本的JDBC模板,利用JDBC和简单的索引参数查询提供对数据库的简单访问. NamedParameterJdbcTemplate:能够在执行查询时把值绑定到SQL里的命名参数,而不是使用索引参数. Simpl…
AOP AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善.OOP引入封装.继承.多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合.不过OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能.日志代码往往横向地散布在所有对象层次中,而与它对应的对象的核心功能毫无关系对于其他类型的代码,如安全性.异常处理和透明的持续性也都是如此,这种散布在各…
组件扫描:Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件. 特定组件包括: 1.@Component:基本注解,识别一个受Spring管理的组件 2.@Respository:标识持久层组件 3.@Service:标识业务层组件 4.@Controller:标识表现层组件 Spring 有默认的命名策略: 使用非限定类名, 第一个字母小写. 也可以在注解中通过 value 属性值标识组件的名称 当在组件类上使用了特定的注解之后, 还需要在 Spring 的配置文件…
NoSQL 简介 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL".是对不同于传统的关系型数据库的数据库管理系统的统称.它泛指非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展.NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大…
前言:目前所有的项目都在使用maven,可是一直没有时间去整理学习,这两天正好有时间,好好的整理一下. 一.为什么使用Maven这样的构建工具[why] ① 一个项目就是一个工程 如果项目非常庞大,就不适合使用package来划分模块,最好是每一个模块对应一个工程,利于分工协作. 借助于maven就可以将一个项目拆分成多个工程 ② 项目中使用jar包,需要“复制”.“粘贴”项目的lib中 同样的jar包重复的出现在不同的项目工程中,你需要做不停的复制粘贴的重复工作. 借助于maven,可以将ja…
前言:目前所有的项目都在使用maven,可是一直没有时间去整理学习,这两天正好有时间,好好的整理一下. 一.为什么使用Maven这样的构建工具[why] ① 一个项目就是一个工程 如果项目非常庞大,就不适合使用package来划分模块,最好是每一个模块对应一个工程,利于分工协作. 借助于maven就可以将一个项目拆分成多个工程 ② 项目中使用jar包,需要“复制”.“粘贴”项目的lib中 同样的jar包重复的出现在不同的项目工程中,你需要做不停的复制粘贴的重复工作. 借助于maven,可以将ja…
一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选.如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟. 1.字符串不变性 下面这张图展示了这段代码做了什么 String s = "abcd"; s = s.concat("ef"); 2.equals()方法.hashCode()方法的区别 HashCode被设计用来提高性能.equals()方法与hashCode()方法的区别在于: 如果两个对象相等(equal)…
网络搜索结果,出处不详,仅供参考 对于刚刚接触Java的人,java基础知识技术点繁多,那么gkstk小编为大家汇总最全java知识点如下,仅供大家参考学习! 1. JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可.不过对于一个有着3年以上Java经验的资深开发者来说,不会JVM几乎是不可接受的. JVM作为java运行的基础,很难相信对于JVM一点都不了解的人可以把java语言吃得很透.我在面试有超过3年J…
配置完JDK&环境变量后,我们就可以开始写程序了,那么程序怎么写呢,用什么工具呢,我建议 为了方便学习,我们最好在一个磁盘下建立一个专门的文件来写java程序,比如就在D盘下建立一个名为"java"的目录,然后在这个目录下写程序.刚开始最好用文本来写程序而不是集成开发环境,例如eclipse,记事本,等等,因为这样会锻炼写代码规范的能力. 1.新建记事本(我自己习惯用EditPlus),命名为:yuanma4.java 2.然后打开编辑代码,如下: class yuanma1…