JAVA从零开始学习笔记(更新中)

JAVA学习笔记

学习方向

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的内存分析

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数据类型分为基本数据类型和引用类型。

有8种基本数据类型

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类型
  1. 既然字符串变量是字符串的管理者而非所有者,那么对字符串变量的赋值能否修改字符串的内容呢?

比如有如下的代码:String s = "hello"; s = "bye";

我们能否说字符串"hello"被改成了"bye“呢?如果不能,那么正确的说法是什么呢?

不能。初始化了s变量之后,意味着s可以管理"hello"。

而后面重新赋值了,那就意味着"bye"被s管理

而原先的"hello"还存在,只是管理权发生了变化。



  1. String类常用方法

创建新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<b为负 a=b 为0

字符串–>数值:

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类型

boolean有两个文字值,即true和false(小写)。
注意:
数字值不能自动转换为boolean 。

char类型

一个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类型

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

抽象、接口与多态

抽象类中所包含的不一定都是抽象方法,可以有实例变量、构造方法和具体方法

接口是一种特殊的抽象类,其中的所有方法都是抽象的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葛济维的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值