Java基础
av80585971
数据库
Mysql:av68811608
Oracle:av81386804
JDBC:av68736927
C3P0:av73840600
前端技术
HTML、CSS、Javascript:av73840600
jQuery-:av37976701
Ajax:av15657082 av15866060
Vue:av76249419
微信小程序:av40455083
动态网页
av73840600
编程强化
JVM优化:av70549061
数据结构算法:av83826038 av78639604
软件项目管理
Maven: av52364221
SVN:av73840600 av7959491
Git:av75718460
Jenkins:av83089670
热门技术框架
SSM:av7770852
Mybatis-Plus :av69233006
Spring Data:av71980390
Spring:av70828462
分布式架构
Dubbo、Zookeeper:av74933720
SpringCloud:av77085442 av89898642
Eureka:av74127911
Skywalking:av80349807
服务器中间件
RocketMQ:av66702383
Kafka:av71991051
Sharding-JDBC:av68736927
Redis:av76235738
MongoDB:av80450883
服务器技术
Tomcat:av67233983
Linux系统:av73840600
CentOS、Virtualbox:av23360560
Ubuntu、Vmware:av14184325
容器技术
Docker:av69121091
业务解决方案(实战项目)
Elasticsearch:av66600360
Lucene:av77895717
Quartz:av36062910
Elastic-Job:av74128695
SpringSecurity:av74851468
Activiti:av7670054
Java中内存需要划分成为5个部分:
1.栈(Stack): 存放的都是方法中的局部变量。方法的运行一定要在栈当中。
局部变量: 方法的参数,或者是方法{}内部的变量
作用域: —旦超出作用域,立刻从栈内存当中消失。
2.堆(Heap): 凡是new出来的东西,都在堆当中。
堆内存里面的东西都有一个地址值: 16进制
堆内存里面的数据,都有默认值。规则:
如果是整数 默认为0
如果是浮点数 默认为0.0
如果是字符 默认为"\uoooo’
如果是布尔 默认为false
如果是引用类型 默认为null
3.方法区(Method Area): 存储.class相关信息,包含方法的信息。
4.本地方法栈(Native Method Stack): 与操作系统相关。
5.寄存器(pc Register) : 与CPU相关。
举个例子:
int []Array = new int[5];
5个int类型的空间在堆当中创建,首空间的地址值,赋值给了栈中的Array变量,用这个变量就可以访问到堆空间的5个数据。
Scanner in = new Scanner(System.in);
int t = in.nextInt();
System.out.println();
System.out.println(amount+"-"+price+"="+(100-price));
System.out.print();
System.out.printf("%d",x);
System.out.println(String.format("%d",x));
Math.abs(a-b);
int number = (int)(Math.random()*100+1); //random [0,1)-->[1,101)
System.out.println((int)C);
IDEA的快捷键
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8xfZI9dA-1601710898273)(typora_image/image-20200915112507942.png)]
JAVA数据类型分为基本数据类型和引用类型。
6种数字类型(4个整数型,2个浮点型)、一种字符类型和一种布尔型。
byte、short、int、long,float、double,char、boolean
8种基本类型对应的包装类:
Byte、Short、Integer、Long、Float、Double、Character、Boolean
包装类转基本类型 包装类Integer.valueOf(xxx)
基本类型转包装类 直接赋值 Integer a = 2; int b = a;
所有的JAVA系统类、数组和自定义类都属于引用数据类型。
引用数据类型的变量,在内存中存储的是一个引用地址,这个地址指向对象的内存地址。
String、StringBuffer、StringTokenizer
比如有如下的代码:String s = "hello"; s = "bye";
我们能否说字符串"hello"被改成了"bye“呢?如果不能,那么正确的说法是什么呢?
不能。初始化了s变量之后,意味着s可以管理"hello"。
而后面重新赋值了,那就意味着"bye"被s管理
而原先的"hello"还存在,只是管理权发生了变化。
创建新String
String concat(String s):返回一个新串,在原串后附加上s。
String replace(String old, String new):返回一个新串,将原串中出现的old替换成new。
String substring(int start, int end):返回一个新串,它是原串中从start到end的一部分。
String toLowerCase():返回一个新串,它将原串中的大写字母变成小写。
String toUpperCase():返回一个新串,它将原串中的小写字母变成大写。
substring(7)
//从第8位开始截取到String结束
substring(7,10)
//从第8位截取到到11位
查找方法
boolean endsWith(String s):如原串以s串为结尾,则返回true。
boolean startsWith(String s):如原串以s串为开始,则返回true。
int indexOf(String s):返回串中第一次出现s串的序号值。
int indexOf(String s, int offset):返回串中从offset开始查找,第一次出现s串的序号值。
a.compareTo(b);
a>b 为正,a
字符串–>数值:
int i = Integer.parseInt("123");
double d = Double.parseDouble("1.23"); .....
数值–>字符串:
方法1:
String s = String.valueOf(value);
其中value为任一种数字类型。
方法2:
String s = Integer.toString(123);
方法3:最直接
String s =""+value;
其中value为任意一种数字类型。
字符数组–>字符串:
char []c = {
'a','b','c'};
String str = new String(c);
字符串–>字符数组:
String str = "abc";
char [] c = str.toCharArray();
boolean有两个文字值,即true和false(小写)。
注意:
数字值不能自动转换为boolean 。
一个char代表一个16bit无符号的Unicode字符
字符检测的方法
已知 char ch='a';
Character.isLetter(ch) -- ch是否是字母
Character.isDigit(ch) -- ch是否是数字
Character.isLetterOrDigit(ch) -- ch是否是字母或数字
Character.isWhitespace(ch) -- ch是否是空格
Character.isLowerCase(ch) -- ch是否是小写字母
Character.isUpperCase(ch) -- ch是否是大写字母
Unicode编码查询:
http://www.unicode.org/
http://www.nengcha.com/code/unicode/class/
Integer.MIN_VALUE
Integer.MAX_VALUE
Interger.class 和 Interger.Type的区别
Integer.class 返回class类型,Interger.Type返回int型,int.class返回Integer的对象
int.class = Integer.TYPE !=Integer.class
final double PI=3.14159;
任何变量都必须经初始化后才能被使用。
当一个对象被创建时,在方法外定义的变量(属性)将被自动初始化。初始为 0
抽象、接口与多态
抽象类中所包含的不一定都是抽象方法,可以有实例变量、构造方法和具体方法
接口是一种特殊的抽象类,其中的所有方法都是抽象的。