零基础小白-自学java全栈开发-学习路线-只要看这一篇就可以了(完整版)

2023-11-12

在这里插入图片描述

小白自述

我是一位刚从大学毕业的学生,想以后从事java软件开发,但是由于不是计算机相关的专业,也不知道从哪里开始学起?该学哪些内容?也不知道具体往哪个领域发展?需要学习多久才能适合企业开发要求?

于是从百度上搜索java自学以及企业开发要求相关的资料,但是网上东西实在是太多,太杂,比如:需要学习javase,struts,hibernate,springboot,jquery,vue,springmvc ,angularjs,redis,socket,gui,html5等,还有一个叫struts2的,后来进一步了解,才知道这个是框架,以前是叫struts1,现在叫struts2,也不知道它们之间到底有啥区别?现在用哪个比较合适?

还有一个叫mybatis,ibatis的框架,不知道它们是不是同一个东西,看着有点像,然后百度里跟mybatis相关的框架还有hibernate,jpa等,实在是一头雾水,感觉好像是大海捞针一样,还是一片迷茫。

在这里插入图片描述
所以,小编在这个为大家分析一下,我们应该怎样去自学java软件开发。

具体内容以及详细流程

java软件开发领域很广,但是主要集中在javaweb开发,通俗一点讲,就是开发类似于淘宝网站。

一个网站的组成部分由这三大块。

  1. 页面显示
  2. 逻辑处理
  3. 数据存储

那与之对应的相关技术

  1. html,css,javascript
  2. java,servlert,jsp
  3. mysql,jdbc

只要掌握以上几种技术,那么一个基本的网站功能就已经实现了。

那么,如果要想在企业中混,只会以上技术还不够滴,因为企业为了提高开发效率,降低系统的维护成本,在开发上往往是采用框架形式,那么就要学习框架设计,主要包括以下几点。

  1. springmvc
  2. spring
  3. mybatis

这些框架就是对应着上面的每个层次,页面显示层使用springmvc框架,业务逻辑处理层使用spring框架,还有数据存储层使用mybatis框架。

好了,这就完了吗?

还没有,企业为了进一步提高开发效率,降低企业用人成本,采用分离式的开发模式。主要技术有如下:

  1. vue框架
  2. spingboot框架

vue对应着前端的开发,springboot整合了后台开发技术。使得前后台开发完全独立开来。

好了,学到这里,大家应该可以胜任企业的大部分开发要求了,至于其它的技术,大家可以进企业边工作边学习,比如:集群,分布式,消息队列,redis缓存技术,数据库性能优化等技术。

开发工具的使用

在我们的实际开发中,为了提高开发效率,我们一般会使用开发工具。

  1. HBuilder
  2. Eclipse for j2ee
  3. maven
  4. git

前端html,css,js开发工具使用HBuilder,后台的java代码一般使用Eclipse,项目架构一般使用maven,还有项目的版本管理工具使用git。

总结一下

要学好java软件开发,必须多看多学多练,多敲代码,当代码量达到一定程度了,那么也就自然会写代码了。

引用下面一句话送给大家:

书山有路勤为径,学海无涯苦作舟。

什么是java

java是一门计算机编程语言,所谓的编程语言就是通过书写一段代码片段,让计算机按照你的要求去执行

比如:让计算机输出一段简单的信息。

public static void main(String[] args)  {
   
		
		System.out.println("您好,java微课程");

	}

可以让计算机自动循环输出10次数据。

public static void main(String[] args) throws InterruptedException {
   
		
		System.out.println("程序开始执行......");
		for (int i = 1; i <= 10; i++) {
   
			
			System.out.println("输出结果:"+i);
			Thread.sleep(1000);
			
		}
		System.out.println("程序执行结束......");

	}

还可以人机互动数据操作。

public static void main(String[] args) throws InterruptedException {
   
		
		while(true){
   
		System.out.println("请输入信息");

		Scanner sc=new Scanner(System.in);
		String info=sc.nextLine();
		if(info.equals("bye")){
   
			
			System.out.println("再见!");
			return ;
		}
		
		System.out.println("您输入的信息是:"+info);
		}
		

	}

第一个java程序分析

软件安装环境 :要想让计算机运行java程序,那么首先需要安装java的开发环境,这个环境叫JDK(Java Development Kit ),从官网上下载安装包并且安装。

设置环境变量:安装好JDK,设置环境变量,这样就能在计算机的任意位置都能够使用JDK了。

测试JDK能否使用。

java -version

编写java代码:创建一个文件,文件的后缀为 .java,它是由class定义的,而 class 是类的意思,也就是类型,在java的世间里,一切皆为

在这个类中,我们可以存放属性以及方法,其中有一个比较特殊的方法,那就是程序入口方法 main,只要程序运行,首先执行的就是这个 main 方法。

public class Test {
   

	public static String name="属性值";
	
	public static void show1(){
   
		
		System.out.println("方法1");
	}
	
	public static void main(String[] args)  {
   
		
		System.out.println(name);
		
		show1();

	}
	

}

以上文件就叫源码,但是java不能执行源码的,执行是后缀为.class 的文件,我们通过javac编译命令.java 源码文件编译成.class 字节码文件。

javac Test.java

然后通过 java执行命令 运行 .class 字节码文件,让计算机执行代码。

java Test

ps:注意,操作系统文件的后缀名默认是隐藏的,需要显示后缀方能修改。

基础知识

标识符:要使用数据,那么就要先定义名字,这个名字就是标识符的意思,但是要遵守定义规则,名字只能是是字母,_,$开头,不能是关键字,所谓的关键字,就是java已经被定义过了,就不能用来再次定义了。

public static void main(String[] args)  {
   
		
		String name="zhangsan";
		String $name="lisi";
		String _name="wangwu";
		
		System.out.println("测试输出内容");
				
	}

变量:就是定义的值会发生变化,也就是给名字重新赋值。

public static void main(String[] args)  {
   
		
		String name="zhangsan";
		System.out.println("最初名字:"+name);
		
		name="lisi";
		System.out.println("修改后的名字:"+name);
	}

常量:相对于变量而言,名字一旦被赋值了,那么就不能再被修改了。

public static void main(String[] args)  {
   
		
		final String name="zhangsa";
		
		final String name2;
		name2="lisi";
		
	}

类型:标识符是用来存储数据的,但是这个数据也是可以有类型的。java中常用的类型有以下几种:

  1. int 整数类型
  2. float 浮点类型
  3. char 字符类型
  4. String 字符串类型
  5. boolean 布尔类型
public static void main(String[] args)  {
   
		

		int a=100;
		float b=3.14f;
		char c='a';
		String d="abc";
		boolean e=true;
		
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);
		System.out.println(e);
		
	}

类型之间可以相互装换,但是只局限于同种类型之间的转换。转换的规则是低精度自动转换为高精度,高精度强制转换为低精度。

public static void main(String[] args)  {
   
		

		int a=100;
		float b=3.14f;
		char c='a';
		String d="abc";
		boolean e=true;
		
		b=a;
		System.out.println(b);
		
		a=(int) b;
		System.out.println(a);

		
	}

注释:给自己写过的代码添加说明,一边以后阅读。常用的注释有两种:

  1. 单行注释
  2. 多行注释
//定义了一个变量
	static int a;
	
	/**
	 * 定义了一个方法
	 * 输出变量a的值
	 */
	public static void method(){
   
		
		System.out.println("a的值:"+a);
		
	}
	
	
	public static void main(String[] args)  {
   
		

		//调用方法
		method();
		
		
	}

运算符操作

计算机的主要工作就是做 运算 ,然后java中提供了以下几种常用运算操作。

  1. 赋值运算
  2. 算术运算
  3. 关系运算
  4. 逻辑运算

赋值运算:就是把一个值赋值给一个标识符,可以是变量或者常量。

算术运算:主要实现数学相关的操作,比如:+、-、*、/、%、++、--等操作。

public static void main(String[] args)  {
   
		

		 int a = 1;
	     int b = 2;
	     int c = 3;
	     int d = 4;
	     
	     System.out.println("a+b=" +(a + b) );
	     System.out.println("a-b=" +(a - b) );
	     System.out.println("a*b=" +(a * b) );
	     System.out.println("b/a=" +(b / a) );
	     System.out.println("b%a=" +(b % a) );
	     
	     System.out.println("a++=" +(a++) );
	     System.out.println("a--=" +(++a) );
	   
	     System.out.println("d++= " +(d--) );
	     System.out.println("++d= " +(--d) );
		
		
	}

加号(+)比较特殊,如果符号左右都是数字,那么就按照算术来运算,如果符号有一边只要是字符串,那么就按照字符串拼接运算。

public static void main(String[] args)  {
   
		

		 int a = 1;
	     int b = 2;
	    
	     System.out.println(a+b);
	     
	     String c="javawkc";
	     
	     System.out.println(a+c);
		
	}

在处理算术算术赋值的时候,可以通过以下方式书写。

public static void main(String[] args)  {
   
		

		 int a = 1;
		 a=a+1;
		 
		 System.out.println(a);
		 
		 a+=1;
		 System.out.println(a);
		 

	}

关系运算:如果两个数字进行比较,可以使用关系运算符,两数比较的结果是布尔类型 boolean

public static void main(String[] args)  {
   

		 int a = 1;
		 int b=2;
		 
		 System.out.println(a==b);
		 System.out.println(a>b);
		 System.out.println(a<b);
		 System.out.println(a!=b);
		 System.out.println(a>=b);
		 System.out.println(a<=b);
		 
		
	}

逻辑运算:对布尔结果进行多条件的运算叫逻辑运算,比如:两个布尔的并且运算,或者运算,取反运算。判断的结果还是布尔类型。

public static void main(String[] args)  {
   
		

		 boolean a=true;
		 boolean b=false;
		 
		 System.out.println(a&&b);
		 System.out.println(a||b);
		 System.out.println(!a);
		
		
	}

运算优先级
一般是按照先乘除后加减,如果遇到括号先运算括号,自增自减优先运行。

public static void main(String[] args)  {
   
		
		int a=1;
		int b=2;
		int c=3;
		int d=4;
		int e=5;
		int f=6;
		int g=7;
		int h=8;
		
		System.out.println(a+b-c*d/(e+f)*++g*h--);
		
	}

控制语句

控制语句就是控制程序的执行流程,比如:当条件满足的时候再执行,如果不满足执行其它代码。还有,可以循环控制代码的执行次数。

常用的控制语句如下:

  1. if…else if…else
  2. while条件循环
  3. for条件循环
public static void main(String[] args)  {
   
		

		boolean flag=true;
		
		if(flag){
   
			
			System.out.println("执行正确");
		}
		
		
		flag=false;
		if(flag){
   
			
			System.out.println("执行正确");
		}else{
   
			
			System.out.println("执行错误");
		}
		
		
		int i=2;
		
		if(i==0){
   
			System.out.println("输出零");
		}else if(i==1){
   
			
			System.out.println("输出壹");
		}else if(i==2){
   
			
			System.out.println("输出贰");
		}else{
   
			
			System.out.println("输出都不是");
		}
		
		
		int k=0;
		while(k<5){
   
			
			System.out.println("循环输出:"+k);
			k++;
			
		}
		
		for(int j=0;j<5;j++){
   
			System.out.println("循环输出:"+j);
			
		}
		
	}

数组类型

有时候在一个变量中我们需要保存多个数据,而不止一个数据的时候,那么我们就需要使用数组类型,数组类型就是对java中每种类型的扩展,使得能保存多个数据。

		public static void main(String[] args)  {
   
	
		int[] a={
   1,2,3,4,5};
		String[] b={
   "zhangsan","lisi","wangwu"};
		boolean[] c={
   true,false,true};
		
		System.out.println(a[0]);
		System.out.println(b[1]);
		System.out.println(c[2]);
		
		for (int i = 0; i < a.length; i++) {
   
			System.out.println(a[i]);
		}
		
		for (int value : a) {
   
			System.out.println(value);
		}
	}

在数组中可以存放java中的基本类型以外,还可以存放数组。

	public static void main(String[] args)  {
   
		int[][] d={
   {
   1,2},{
   3},{
   4,5,6}};
		
		int[] e=d[0];
		System.out.println(e);
		System.out.println(e[0]);
		
		for (int i = 0; i < d.length; i++) {
   
			
			for (int j = 0; j < d[i].length; j++) {
   
				
				System.out.print(d[i][j]);
			}
			System.out.println("");
			
		}
	}

方法定义和使用

如果一些代码被多个地方调用,那么可以把这些代码写在一个功能函数中,也叫方法,再去调用这个方法。

public static void method1(){
   
		
		System.out.println("输出1");
		System.out.println("输出2");
		System.out.println("输出3");
		System.out.println("输出4");
		System.out.println("输出5");
		
	}
	
	
	public static void main(String[] args)  {
   
		
		System.out.println("使用方法");
		
		method1();
		
		System.out.println("我想在使用");
		
		method1();
		
	}

参数:在定义方法的时候,可以通过定义参数来接受调用者传递的数据

public static void method2(String name){
   

		
		System.out.println("调用者是:"+name);
	}
	
	
	public static void main(String[] args)  {
   
		
		System.out.println("使用方法");
		method1("张三");
		
		System.out.println("再次使用方法");
		method1("李四");
		
	}

返回值:在调用方法的时候,也可以获取方法返回的数据

public static String method3(String name){
   

		
		System.out.println("调用者是:"+name);
		
		return name+"-java微课程";
	}
	
	
	public static void main(String[] args)  {
   
		
		System.out.println("使用方法");
		System.out.println(method1("张三"));
		
		System.out.println("再次使用方法");
		System.out.println(method1("李四"));
		
	}

重载:如果一些方法的含义是一样的,只是功能不一样,那么可以不用另外取新的方法名字,使用同一个名字,通过参数的不同,达到功能的不同。

public static void method(){
   

		
		System.out.println("普通方法的功能");
		
		
	}
	
	public static void method(String name){
   

		
		System.out.println("带一个参数的功能:"+name);
		
		
	}
	
	public static void method(String name,int id){
   

		
		System.out.println("带两个参数的功能:"+name+id);
		
		
	}
	
	public static void method(int id,String name){
   

		
		System.out.println("带两个相反顺序参数的功能:"+name+id);
		
		
	}
	
	
	public static void main(String[] args)  {
   
		
		method();
		method("zhangsan");
		method("lisi", 1);
		method(2,"wangwu");
		
		
	}

Eclipse工具的使用

为了提高代码开发效率,我们使用Eclipse工具,版本为:Eclipse IDE for Java EE Developers Photon ,此版本既可以开发J2SE项目,也可以开发后期的J2EE项目,首先从官方网站下载软件。

Eclipse的主界面

在这里插入图片描述
点击File新建一个java project

在这里插入图片描述
给项目取一个名字,并且选择java环境。
在这里插入图片描述
最终的工程界面如下:

在这里插入图片描述

类与对象

是一种类型,是具体事物的模板描述,而对象就是对的一个具体的事物描述,比如:定义了一个类型为User的用户类,在使用的时候实例化这个类型成为对象,而这个类型可以实例化多个对象,对象之间彼此独立,互不影响。

构造对象使用 new 关键字实例化。

public class User {
   

	
	public String name;
	

}
public static void main(String[] args)  {
   
		
		
		User user1=new User();
		user1.name="张三";
		
		User user2=new User();
		user2.name="李四";
		
		User user3=new User();
		user3.name="王五";
		
		System.out.println(user1);
		System.out.println(user2);
		System.out.println(user3);
		
		
	}

构造函数:在使用 new 关键字构造对象的时候,其实就是在调用类中一个特殊的函数,构造函数 它的主要特点是函数名字和类的名字要一样,没有返回标识。

public class User {
   

	
	public String name;
	
	public User(){
   
		
		System.out.println("构造函数");
	}
	

}

构造函数和普通函数也一样,也可以定义参数,在 new 构造的时候传递参数。

public class User {
   

	
	public String name;
	
	public User(){
   
		
		System.out.println("构造函数");
	}
	
	public User(String name){
   
		
		System.out.println("带参数的构造函数:"+name);
	}
	

}
public static void main(String[] args)  {
   
		
		User user1=new User();
		User user2=new User("李四");
	
		
	}

全局和局部变量:定义在中的变量称之为全局变量,在类中的每个方法都可以调用这个全局变量。定义在方法体内的变量称之为局部变量

public class User {
   

	
	public String name="zhangsan";
	
	public void method1(){
   
		
		String sex="man";
		System.out.println(name+"-"+sex);
		
	}
	
	public void method2(){
   
		
		String sex="woman";
		System.out.println(name+"-"+sex);
		
	}
	
	public void method3(){
   
		
		String name="lisi";
		String sex="woman";
		System.out.println(name+"-"+sex);
		
	}
	

}

	public static void main(String[] args)  {
   

		User user1=new User();
		
		user1.method1();
		user1.method2();
		user1.method3();
		
	}

地址引用:当对象作为一个方法的参数传递时,是按照这个对象的内存地址引用的,如果改变方法中对象参数的数据,那么会影响外部定义的那个对象中的数据。

public class User {
   

	
	public String name="来自于cn包";
	
	
	public void method1(User user){
   
		
		System.out.println("接受的名字:"+user.name);
		
		user.name="lisi";
		
		System.out.println("改变后的名字:"+user.name);
		
	}
	
	public void method2(String name){
   
		
		System.out.println("接受普通的名字:"+name);
		
		name="lisi";
		
		System.out.println("改变普通后的名字:"+name);
		
	}
	
}

public static void main(String[] args)  {
   

		
		User user=new User();
		user.name="zhangsan";
		
		System.out.println("传递之前的名字:"+user.name);
		user.method1(user);
		System.out.println("调用之后的名字:"+user.name);
		
		
		String name="zhangsan";
		System.out.println("传递普通之前的名字:"+name);
		user.method2(name);
		System.out.println("调用普通之后的名字:"+name);
		
	}

static关键字
static是修饰类中的属性和方法的调用方式,普通的属性和方法是属于对象的,是相互独立的。而static修饰的属性和方法是属于的,是每个对象公用的

public class User {
   

	
	public String name;
	public static String name2;
	
	

}
public static void main(String[] args)  {
   
		
		
		//第一个对象
		User user1=new User();
		user1.name="zhangsan";
		user1.name2="lisi";
		System.out.println(user1.name);
		System.out.println(user1.name2);

		
		//第二个对象
		User user2=new User();
		user2.name="wangwu";
		user2.name2="zhaoliu";
		System.out.println(user2.name);
		System.out.println(user2.name2);
	
		System.out.println(user1.name);
		System.out.println(user1.name2);
		System.out.println(user2.name);
		System.out.println(user2.name2);
		
		
	}
	

修饰方法,那么在方法中使用的属性只能是静态的。

public class User {
   

	
	public String name;
	public static String name2;
	
	
	public void method1(){
   
		
		System.out.println("方法1"+name+name2);
	}
	
	public static void method2(){
   
		
		System.out.println("方法2"+name2);
	}

}

属性和方法使用static修饰,还可以直接通过类调用,不需要实例化对象。

public static void main(String[] args)  {
   
		
		User.name2="张三";
		System.out.println(User.name2);
		User.method2();

	}

包的使用
java中的包类似于文件夹的功能,可以给定义的类归类,通过关键字pakage修饰,然后通过关键字import导入

package cn;

public class User {
   

	
	public String name="来自于cn包";
}

import cn.User;

public class Test {
   

	public static void main(String[] args)  {
   
		
		User user2=new User();
		System.out.println(user2.name);
		
	}
	

}

包还可以解决同名类的问题。但是在调用具体包中的类的时候,则需要通过全名引用

package com;

public class User {
   

	
	public String name="来自于com包";

}
		public static void <
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

零基础小白-自学java全栈开发-学习路线-只要看这一篇就可以了(完整版) 的相关文章

  • tomcat 7.0.50 java websocket 实现给出 404 错误

    我正在尝试使用 Java Websocket API 1 0 JSR 356 中指定的带注释端点在 tomcat 7 0 50 上实现 websocket 以下是我如何对其进行编码的简要步骤 1 使用 ServerEndpoint注解编写w
  • 如何在java Spring Boot中实现通用服务类?

    我有许多具有重复代码的服务 我想知道如何实现通用服务 以便我的所有服务都可以扩展它 服务接口示例 重复代码 Service public interface IUserService List
  • 如何修复“未知变量'sql-mode = ANSI'”?

    使用 MySQL 5 5 27 在 my cnf 中我有 mysql sql mode ANSI 启动 mysql 控制台后我得到 unknown variable sql mode TRADITIONAL MySQL 文档服务器 SQL
  • 为什么Iterator接口没有add方法

    In IteratorSun 添加了remove 方法来删 除集合中最后访问的元素 为什么没有add方法来向集合中添加新元素 它可能对集合或迭代器产生什么样的副作用 好的 我们开始吧 设计常见问题解答中明确给出了答案 为什么不提供 Iter
  • MySQL 两种日期格式之间的转换

    用户将以这种格式输入日期 2017 年 2 月 17 日 存储在 mysql 数据库中的日期格式如下 2015 02 17 00 00 00 我想做的是 SELECT FROM insurance where DATE FORMAT in
  • 批处理文件并与数据库比较

    目前我正在开发一个 Spring Boot 应用程序 该应用程序定期尝试处理包含用户数据的文件 其中每行都包含userId and departamentId隔开 例如123534 13 该文件将包含数百万条记录 我的要求是以这样的方式将此
  • Eclipse - 安装新的 JRE (Java SE 8 1.8.0)

    我正在尝试安装 Java 8 到目前为止我所做的 安装最新版本的 Eclipse 下载并安装 Java SE 运行时环境 8http www oracle com technetwork java javase downloads jre8
  • 如何删除日期对象的亚秒部分

    当 SQL 数据类型为时间戳时 java util Date 存储为 2010 09 03 15 33 22 246 如何在存储记录之前将亚秒设置为零 例如 在本例中为 246 最简单的方法是这样的 long time date getTi
  • Java:如何确定文件所在的驱动器类型?

    Java 是否有一种独立于平台的方法来检测文件所在的驱动器类型 基本上我有兴趣区分 硬盘 可移动驱动器 如 USB 记忆棒 和网络共享 JNI JNA 解决方案不会有帮助 可以假设 Java 7 您可以使用 Java 执行 cmd fsut
  • Spring Data JPA:查询如何返回非实体对象或对象列表?

    我在我的项目中使用 Spring Data JPA 我正在演奏数百万张唱片 我有一个要求 我必须获取各种表的数据并构建一个对象 然后将其绘制在 UI 上 现在如何实现我的 Spring 数据存储库 我读到它可以通过命名本机查询来实现 如果指
  • 寻找局部最小值

    下面的代码正确地找到了数组的局部最大值 但未能找到局部最小值 我已经进行了网络搜索 以找到找到最小值的最佳方法 并且根据这些搜索 我认为我正在使用下面的正确方法 但是 在几天的时间里多次检查每一行之后 下面的代码中有一些我仍然没有看到的错误
  • 在 Clojure 中解压缩 zlib 流

    我有一个二进制文件 其内容由zlib compress在Python上 有没有一种简单的方法可以在Clojure中打开和解压缩它 import zlib import json with open data json zlib wb as
  • Karaf / Maven - 无法解决:缺少需求 osgi.wiring.package

    我无法在 Karaf 版本 3 0 1 中启动捆绑包 该包是使用 Maven 构建的并导入gson http mvnrepository com artifact com google code gson gson 2 3 1 我按照要求将
  • 控制数据是否存在于数组中

    我在mysql中有两个不同的表 我正在使用curl从json文件中获取数据 我的第一个表名称是 tblclients 该表存储客户端数据 我的第二个表名称是 tblcustomfieldsvalues 该表使用 tblclients 表的
  • 禁用 Android 菜单组

    我尝试使用以下代码禁用菜单组 但它不起作用 菜单项仍然启用 你能告诉我出了什么问题吗 资源 菜单 menu xml menu menu
  • 如何处理 StaleElementReferenceException

    我正在为鼠标悬停工作 我想通过使用 for 循环单击每个链接来测试所有链接的工作条件 在我的程序中 迭代进行一次 而对于下一次迭代 它不起作用并显示 StaleElementReferenceException 如果需要 请修改代码 pub
  • Hadoop NoSuchMethodError apache.commons.cli

    我在用着hadoop 2 7 2我用 IntelliJ 做了一个 MapReduce 工作 在我的工作中 我正在使用apache commons cli 1 3 1我把库放在罐子里 当我在 Hadoop 集群上使用 MapReduceJob
  • JMS 中的 MessageListener 和 Consumer 有什么区别?

    我是新来的JMS 据我了解Consumers能够从队列 主题中挑选消息 那么为什么你需要一个MessageListener因为Consumers会知道他们什么时候收到消息吗 这样的实际用途是什么MessageListener 编辑 来自Me
  • 使用 Java https 上传到 Imgur v3 错误

    我目前正在尝试使用他们当前的 API v3 上传到 imgur 但是我不断收到错误 错误 javax net ssl SSLException 证书中的主机名不匹配 api imgur com imgur com OR imgur com
  • mysql 查询选择当月的所有行?

    我有一个名为 startdate 的日期时间类型的列 我必须获取当前月份的开始日期和结束日期之间的所有行 即从 1 11 2014 到 30 11 2014 select from your table where year curdate

随机推荐

  • 后代,后裔 descendant offspring posterity progeny

    后代 后裔 descendant offspring posterity progeny 后代 后裔 descendant offspring posterity progeny posterity descendant 和 offspri
  • xp能ping通kali,而kali却ping不了winxp的解决方案

    今天天气不错 手机响了 学妹向我提问了一个问题 她的win xp能ping通linux kali 而linux kali却ping不了winxp 这个问题起初我以为是vmware 15版本的虚拟网卡乱掉了 等到问题解决的时候发现 大错特错
  • 【ESP-IDF】ESP32利用wifi联网(STA模式)

    1 AP和STA的含义 AP模式 Access Point模式 提供无线接入服务 允许其它无线设备接入 提供数据访问 STA模式 Station模式 类似于无线终端 sta本身并不接受无线的接入 它可以连接到AP设备 2 STA模式例程 官
  • 卫星安全组网认证论文详解

    文章 卫星安全组网认证关键技术研究 文章链接 卫星安全组网认证关键技术研究 中国知网 1 摘要 对象 双层卫星网络 通常由地球同步轨道卫星 GEO 和低地球轨道卫星 LEO 组成 其中GEO在通信中起到中继器的作用 能够提供广域覆盖区域 但
  • python中的键不允许重复_在python中使用重复键字典

    在python中使用重复键字典 我有以下列表 其中包含具有不同值的重复的汽车登记号码 我想把它转换成一个字典 接受这个汽车登记号码的多个键 到目前为止 当我尝试将列表转换为字典时 它消除了其中一个键 有人可以告诉我如何使用重复的键字典列表是
  • FFmpeg x264编码b帧时时间戳,帧率等总结

    1 在进行FFmpeg API转码视频时 解码出来的视频帧是包含有frame gt pict type字段的 如果编码前不处理 x264会按照该类型强制编码 如果希望x264自动插入b帧编码 在编码前需要将frame gt pict typ
  • c语言什么是关键字,c语言关键字是什么

    c语言关键字是什么 c语言关键字又称为保留字 就是已被C语言本身使用 不能作其它用途使用的字 C语言简洁 紧凑 使用方便 灵活 ANSI C标准C语言共有32个关键字 9种控制语句 程序书写形式自由 区分大小写 把高级语言的基本结构和语句与
  • 关于项目启动;500报错问题

    HTTP Status 500 An exception occurred processing JSP page index jsp at line 1 type Exception report message An exception
  • 2017 年最推荐的五篇深度学习论文

    价值 思考 共鸣 简评 2017 年度最值得深入阅读的五篇深度学习相关论文 如果没读过的可以行动了 1 最酷视觉效果 使用 CycleGAN 在不成对图像集之间转换 论文 https arxiv org abs 1703 10593 目标
  • 用 clang 编译成 IR 汇编 和 目标机器汇编语言文件

    clang emit llvm c sum c o sum bc clang emit llvm S c sum c o sum ll clang S sum c o sum asm 一 C源文件 sum c int sum int x i
  • Redis基础

    Redis 简介 Redis 是完全开源免费的 遵守BSD协议 是一个高性能的key value数据库 Redis 与其他 key value 缓存产品有以下三个特点 Redis支持数据的持久化 可以将内存中的数据保存在磁盘中 重启的时候可
  • 更改/去除 a链接默认样式

    比较常见的一个需求 但是点击a链接的时候又不想让它变色 下面的代码就可以解决 a text decoration none important color C00017 important
  • 小白也能操作的“电脑恢复出厂设置”,windows8/10通用型

    出厂设置恢复到出厂时的默认状态 删除所有的文件和软件 在手机上很多朋友都会设置出厂设置 那么你们知道电脑如何恢复出厂设置吗 今天 我给大家带来了电脑恢复出厂设置的两种方法 一起来了解一下吧 电脑是我们当今社会发展的必备利器 各行各业都不开电
  • Markdown数学语法

    Markdown数学语法 文章目录 Markdown数学语法 1 基本格式 1 1 行内公式 1 2 块级公式 行间公式 1 3 角标 1 4 整体内容 1 5 多行公式 equation CSDN不支持 align CSDN不支持 支持a
  • 24点

    刚学c 的我是怎么解决判断24点问题的 本人大一狗 高中因为高考 浙江选考 学过vb 开学两周后 教c的老师突然在一节课教完if for switch语句 然后出了个挑战题 如何随意输入四个数判断能否用 计算出24点 有人写了几十行的if语
  • Java基础中的IO流

    一 IO流 IO 上传下载 写入写出 流 一连串流动的数据 以先入先出的方式进行流动 管道 以程序为中心 程序与网络 文件 服务器 数组 1 分类 1 按照流向 输入流 输出流 2 操作单元分 字节流 万能流 任何内容都可以转为字节 可以传
  • RabbitMQ两种集群模式配置管理

    一 RabbitMQ集群的两种模式 1 普通模式 默认的集群模式 2 镜像模式 把需要的队列做成镜像队列 存在于多个节点 属于RabbitMQ的HA方案 普通模式 默认的集群模式 RabbitMQ集群中节点包括内存节点 磁盘节点 内存节点就
  • 升级openssl后nginx无法编译安装问题之解决方法

    Linux下升级openssl到新版本 如CentOS 7中openssl升级到openssl 1 1 1d 后 其实原nginx并没有真正调用新的openssl 1 1 1d 怎么办呢 需对nginx重新编译 但在编译安装过程中有人就无法
  • 利用Console来调试JS程序、Console用法总结

    利用Console来调试JS程序 Console用法总结 1 一 什么是 Console Console 是用于显示 JS和 DOM 对象信息的单独窗口 并且向 JS 中注入1个 console 对象 使用该对象 可以输出信息到 Conso
  • 零基础小白-自学java全栈开发-学习路线-只要看这一篇就可以了(完整版)

    文章目录导航 小白自述 具体内容以及详细流程 开发工具的使用 总结一下 什么是java 第一个java程序分析 基础知识 运算符操作 控制语句 数组类型 方法定义和使用 Eclipse工具的使用 类与对象 常用类 集合类 内部类 异常处理