springboot
java框架,对spring的改进
java框架,对spring的改进
https://zhuanlan.zhihu.com/p/140885502
JDBC的全称是Java数据库连接(Java Database connect),它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除等操作。应用程序使用JDBC访问数据库的方式如下图所示。
POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。
执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。
https://blog.csdn.net/gao_zhennan/article/details/112749742
https://www.html.cn/softprog/java/142271.html
https://blog.csdn.net/qq_43189115/article/details/99856659
https://blog.csdn.net/zdash21/article/details/101310736
https://www.jianshu.com/p/bd5d07982699
https://www.jianshu.com/p/8dcdb02f97f7
https://blog.csdn.net/jamesjxin/article/details/46606307
https://blog.csdn.net/diligent_jianhao/article/details/111515183
https://blog.csdn.net/ximaiyao1984/article/details/114782006
https://blog.csdn.net/qq_36925114/article/details/102484525
https://www.cnblogs.com/chiangchou/p/idea-debug.html
https://blog.csdn.net/glpghz/article/details/107509987
当我们项目使用的是 JDK 8,但是代码却没有使用 JDK 8 的新特性,只需使用 JDK 7 的时候我们可以选择 7 - Diamonds,ARM,multi-catch etc
project settings -> modules
Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。
https://blog.csdn.net/qq_19734597/article/details/120996418
https://blog.csdn.net/weixin_34234829/article/details/89686175
https://blog.csdn.net/idomyway/article/details/81974677
1 更换镜像
conf/settings.xml
https://www.cnblogs.com/digdeep/p/5026066.html
https://blog.csdn.net/qq_42931492/article/details/107283590
2 网络配置
conf/settings.xml
https://blog.csdn.net/zongf0504/article/details/88797831
3 问题
(org.apache.maven.wagon.providers.http.httpclient.NoHttpResponseException) caught when processing request to {}->http://XXXXXX->http://maven.aliyun.com:80: The target server failed to respond
https://blog.51cto.com/u_15119353/3303815
1 设置setting.xml
2 编写pom
1 | <dependencies> |
3 生成本地包的repository
默认位置在/user/.m2/repository,在setting可以修改
4 环境使用本地repository
https://blog.csdn.net/weixin_42476601/article/details/87884514
1.com/atguigu/gmall/hive/udtf/ExplodeJSONArray has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
解决:两边jdk版本对齐就好
打包时候注意要:maven clean,maven compile
class file versions对应jdk版本:
1 | 49 = Java 5 |
2.Unknown host maven.aliyun.com
前后端
指的web前后端
移动端
ios和安卓
服务端 ,客户端
服务端:顾名思义是服务的,客户端发送的请求交给服务器端处理,是以response对象存在,服务端处理完毕后反馈给客户端。
客户端(Client)是指与服务器相对应并为客户提供本地服务的程序。 除了仅在本地运行的某些应用程序外,它们通常安装在普通客户端上,并且需要与服务器一起使用。
https://blog.csdn.net/qq_41297896/article/details/90056534
https://www.runoob.com/java/java-package.html
https://www.runoob.com/w3cnote/java-compile-with-package.html
为了更好地组织类,用于区别类名的命名空间
包的命名规范
https://blog.csdn.net/shi779276212/article/details/92795085
使用:
https://www.runoob.com/java/java-override-overload.html
重写:是子类对父类同名函数的二次实现
重载:一个类内存在多个重名函数,而参数不同
http://c.biancheng.net/view/1001.html#
https://www.runoob.com/java/java-polymorphism.html
多态是同一个行为具有多个不同表现形式或形态的能力。
多态存在的三个必要条件
分类:
https://blog.csdn.net/zhao_miao/article/details/83750898
1 向上转型
父类 父类对象 = 子类实例
只能调用父特有,子覆盖,不能子特有
2 向下转型
向下转型之前一定要进行向上转型!!
子类 子类对象 = (子类)父类实例
可以父特有,子覆盖,子特有
https://blog.csdn.net/weixin_29740921/article/details/114249667
入口为main,就和c++的main函数一样,main方法的写法是固定的
1 | public static void main(String[] args) {} |
一个java文件可以不只有一个main,不同类都可以有自己的main,然后选哪个main呢,也就是选哪个类呢?
选公共类(至多包含一个);若是没有就选用同名类,和文件同名
分类
https://blog.csdn.net/Coding_Zhu/article/details/53096178
本质
https://www.zhihu.com/question/31203609
声明
1 | dataType[] arrayRefVar; // 首选的方法 |
创建
1 | arrayRefVar=new dataType[arraySize]; |
多维数组
1 | type[][] typeName = new type[typeLength1][typeLength2]; |
和普通for循环比较,在遍历数组、集合方面,foreach为开发人员提供了极大的方便
1 | for(元素类型t 元素变量x : 遍历对象obj){ |
1 | public class TestArray { |
1 BufferedReader
1 | 1 throws IOException |
2 Scanner
http://c.biancheng.net/view/796.html
1自动类型转换
2 强制类型转换
所以当两种数据类型不兼容,或目标类型的取值范围小于源类型时,自动转换将无法进行,这时就需要进行强制类型转换。
1 | int a = 3; |
http://c.biancheng.net/view/6751.html
Exception 是异常的基类
1 语句抛出异常
try
1 | try{ |
throw
当 throw 语句执行时,它后面的语句将不执行,此时程序转向调用者程序,寻找与之相匹配的 catch 语句,执行相应的异常处理程序。如果没有找到相匹配的 catch 语句,则再转向上一层的调用程序。这样逐层向上,直到最外层的异常处理程序终止程序并打印出调用栈情况。
1 | throw ExceptionObject; |
2 方法抛出异常
throws
函数声明异常,但是本身不处理异常,交给调用者处理
1 | returnType method_name(paramList) throws Exception 1,Exception2,…{…} |
1 | import java.io.FileInputStream; |
1 | public static void main(String[] args) throws Exception |
https://zhuanlan.zhihu.com/p/60889552
https://zhuanlan.zhihu.com/p/70110497
目的:为了兼容多种数据类型,和c++模板很像
1 | E - Element (在集合中使用,因为集合中存放的是元素); |
1 | public void printArray( int [] inputArray ) -》public < E > void printArray( E[] inputArray ) |
1 | public class Box -》 public class Box<T> |
java和python正则很像,但不是完全一样
https://blog.csdn.net/weixin_39574708/article/details/114958384
https://blog.csdn.net/henu_xiaohei/article/details/84765678
1 |
或者
2 固定匹配位数
1 | \d{7,8} //7为或者8为 |
注意matches(),find()
match是全部匹配,find是部分匹配
3 转义字符
转义字符\ *:不同于原来的字母含义,比如\n表示换行
java正则为什么要两个斜杆表示转义
https://blog.csdn.net/qq_37325947/article/details/107819945
@Override
需要你重写
this
和python self一样,指的是对象
类直接调用方法
https://blog.csdn.net/qq_40136594/article/details/83996659
需要是静态方法
new
1 | public class Puppy{ |
myPuppy不是指针,是强引用
1 extends
1 | class 子类 extends 父类 { |
2 implements
一般用于类继承接口
1 | public interface A { |
super关键字:当前对象,但是用来调用父类成员
this关键字:当前对象,用来调用子类成员
关于构造函数:
1 进入子类对应的构造函数
2 若是没有显示调用父类的构造函数,则自动调用;若是显示的调用父类的构造函数(super(),必须写第一句,super.SuperClass() 错误),则显示调用
3 先调用父类,然后调用子类
https://www.runoob.com/java/java-anonymous-class.html
作用:抽象类为所有子类提供了一个通用模板,子类可以在这个模板基础上进行扩展,可以避免子类设计的随意性
1 抽象类
特殊的类:抽象类不能实例化对象,会报错
1 | public abstract class Employee |
怎么使用抽象类?
通过类继承的方式使用
2 抽象方法
普通类不能有抽象方法,只有抽象类,或者接口
1 | public abstract double computePay(); |
接口并不是类,是抽象方法的集合
1 | [可见度] interface 接口名称 [extends 其他的接口名, 其他的接口名, 其他的接口名] { |
怎么使用接口?通过类来实现
1 | ...implements 接口名称[, 其他接口名称, 其他接口名称..., ...] ... |
关系:
类和类,继承,只能单继承
类和接口,实现,可以多实现
接口和接口,继承,可以多继承
default
https://blog.csdn.net/qq_35835624/article/details/80196932
配合接口使用
使得接口内的函数可以写方法体,原来全是抽象方法,不能有方法体
声明的时候需要 ->
https://www.runoob.com/java/java8-lambda-expressions.html
1 | MathOperation subtraction = (a, b) -> a - b; //声明 |
一般情况不需要写这个,jvm自动gc
写这个,显示的gc
https://blog.csdn.net/weixin_44279798/article/details/104331263
c++代码打成so -> java加载so
test.java 里面的函数实现用c++写
test_jni.h test_jni.cpp
传数据给c++
https://blog.csdn.net/cgwang_1580/article/details/109498438
按值传递
是否会改变原来的变量,看情况
https://www.zhihu.com/question/31203609
system.load()