【笔记】Java学习(持续更新)

整理以前写好的个人学习笔记,后续学习会慢慢完善,有错误欢迎指正

目录

目录

一、引入和概述

一、软件是什么?

二、Java简介

三、用记事本编写java

四、Eclipse的使用

五、注释和规范

二、基本程序设计

一、关键字保留字

二、标识符(凡是自己可以命名的就是标识符)

三、数据类型

四、集成开发环境

五、运算符

三、流程控制语句

四、String类和Math类

String类:字符串处理

Math类:数学函数

五、格式化处理

Format类

一、NumberFormat类

二、DateFormat类

三、MessageFormat类


一、引入和概述

一、软件是什么?

1.软件是一系列按照特定顺序组织的计算机数据和指令的集合,分系统软件和应用软件。

2.人机交互方式:图形化界面+命令行方式

二、Java简介

      Java作为一门面向对象的语言,继承C和C++的许多成分,用引用取代了C的指针,并有自动的垃圾回收系统,并且在Java平台被编译为体系结构中的字节码格式,因此可以"Write once,run anywhere",即在任何平台运行。

1.Java的三大特性:封装、继承、多态

2.Java的核心机制:JVM虚拟机、GC垃圾回收机制

3.JDK(开发开源工具包)、JRE(运行环境)

4.优点:代码复用性强、便于开发和维护、代码可靠且灵活、可读性可扩展性高

三、用记事本编写java

win+r打开运行,输入cmd打开命令行

切换目录命令:cd java文件所在盘

编译命令:javac  Test.java

编译完成运行命令: java Test.java

四、Eclipse的使用

1.代码调试

  • 双击设置断点,跟踪调试,查看变量的变化。F5单步执行,遇到子函数就进入并且继续单步执行,F6在单步执行时,将子函数整个执行完再停止,F7单步返回

2.快捷键

F1快速修复当前光标的问题
F4打开类型结构
Ctrl+Y重做,和Ctrl+Z相反
Ctrl+/注释选中行,再按取消注释
Ctrl+W关闭当前编辑的
Ctrl+T查看当前继承关系
Alt+/内容辅助
Shift+上下左右的键选中,再加Ctrl时可以一个单词一个单词选,而不是一个字符一个字符了
Alt+Shift+M把代码抽取成方法
Alt+Enter查看当前选择资源的属性

五、注释和规范

一、命名规范

1.驼峰命名法:

大驼峰:每个单词第一个字母大写(StudentType),用于类名、函数名、属性名、命名空间。

小驼峰:第一个字母小写,后面的单词大写(studentTime),用于方法名、参数名、成员变量、局部变量

2.基本原则:

起的名字要做到能望名知义,不要太长,避免使用相似或者仅在大小写上有区别的名字。

二、注释

1.单行注释:以双斜杠“//”标识,只能注释一行内容,用在注释信息内容少的地方。

2.多行注释:包含在“/*”和“*/”之间,能注释很多行的内容。

3.文档注释:包含在“/**”和“*/”之间,也能注释多行内容,一般用在类、方法和全局变量上面

4.Javadoc标签:

常用标签实例:

@author标识作者
@time标识时间
@version标识版本
@param说明参数含义
@return说明返回值类型

二、基本程序设计

一、关键字保留字

1.关键字:在关键地方使用的单词,体现关键的含义

2.保留字:现Java版本使用,但可能以后被用作关键字,命名标识符的时候要避免

二、标识符(凡是自己可以命名的就是标识符)

1.不以数字开头,不加空格,不以关键字和保留字命名

2.命名规范:

包名:都小写

接口名、类名:大驼峰

变量名、方法名:小驼峰

常量名:所有字母大写,用_连接

三、数据类型

注意: 1. long a=3l;      float a =1.22f或1.22F;

   2.引用类型,可以用null作为初始值,String的值不可变

   3.相同内容时,其实是引用一个内容地址

四、集成开发环境

正常顺序

       创建java文件,用文本编辑器打开,写代码,打开DOS界面,先javac命令编译,再java命令运行

(而集成开发环境,可以文本编辑,自动编译,简化运行,随时调试)

五、基本数据类型转换

1.自动类型转换(小容量转换成大容量)(小->大)

当多种数据混合运算时,系统首先自动将所有数据转换成当中容量最大的

当任何基本类型的值和字符串值进行连接运算时,基本类型的值将自动转换为字符串类型

2.强制类型转换(大容量转换成小容量)

 eg:byte=(byte) k;

 String a = "43";     int I = Integer.parseInt(a);

注意:通常字符串不能直接转换为基本数据类型,但可以通过基本数据类型对应的包装类转化为基础类型

五、运算符

1.算术运算符:+、-、*、/、++、--(char类型可以做数学运算)

2.赋值运算符:=、+=、-=、*=、/=、%=

3.比较运算符:==、!=、<、>、>=、<=  (判断结果为true、false)

4.逻辑运算符:&、|、&&、||、!、^

5.位运算符:   无符号的移动空位补0,有符号的移动看首位,补同样的

                      <<          左移

                      >>          右移

                      >>>        无符号运算

eg:m<<n   ==     n*(2^n)

         m>>n   ==     n/(2^n)   

6.三元运算符(三目运算符)

6.1格式:(条件表达式)?表达式1 :表达式2

                                      (为true时执行)(为false时执行)

三、流程控制语句

一、顺序结构

顺序执行代码

二、分支结构

1.if-else结构语句:

if (表达式) {
    语句块1;
} else {
    语句块2;
}

2.多条件 if-else-if 语句:

if(表达式1) {
    语句块1;
} else if(表达式2) {
    语句块2;
...
} else if(表达式n) {
    语句块n;
} else {
    语句块n+1;
}

3.switch case语句

switch(表达式) {
    case 值1:
        语句块1;
        break;
    case 值2:
        语句块2;
        break;
    …
    case 值n:
        语句块n;
        break;
    default:
        语句块n+1;
    break;
}

三、循环结构

1.while语句:

while(条件表达式) {
    语句块;

}

2.for语句:

for(赋值语句;条件语句;迭代语句) {
    语句块;
}

3.foreach语句:

for(类型 变量名:集合) {
    语句块;
}

4.break语句:退出当前循环

5.使用 break 语句实现 goto 的功能(break 带标签):退出label处

四、String类和Math类

String类:字符串处理

一、如何定义String

String a = "Hello java" ;

String a = new String;

String a = new String(str1);创建str1的副本

String str = new String(a);a为字符数组

二、String字符串与整型int的相互转化

1.String 转 int

Integer.parseInt(str);

Integer.valueOf(str).intValue();

2.int 转 Stirng

String s = String.valueOf(i);

String s = Integer.toString(i);

String s = ""+I;

三、字符串的拼接

1."+",连接字符串

2.str.concat(str1);str1接到str后面

四、字符串长度

1.str.length()

五、大小写转换

str.toLowercase();  转小写

  1. str.toUppercase();   转大写

六、去除字符串里的空格

str.trim()

七、分割字符串

1.不限元素数: String[]arr1= str.split(",");(以逗号分隔字符串)

2:限元素数: String []arr2=str.split(",",3);

八、提取

Str.substring(a,b);

Str.substring(a)(a到结尾的数)

九、替换

1.str.replace(" old","new");

2.str.replaceFirst("old","new");只替换第一个符合的字符串

3.str.replaceAll("old","new");将所有符合的字符串都替换

十、比较

考虑大小写的比较 str.equals(str1);

不考虑  str.equalsIngnoreCase(str1);

注意:java里,如果是基本数据类型的比较,会比较值是否相等,如果是引用类型,则比较地址值是否相等

十一、null和空字符

" "是一个长度为0且占内存的空字符串,可以用对象的方法,而null是空引用,没有分配内存

十二、字符串的匹配

1.只是判断符不符合,可以直接用matches

        Striing str;//要验证的内容

        String regex = " ";//需要匹配的内容的正则表达式

        str.matches(regex);

2.提取匹配信息,使用Pattern类和Matcher类

        String regex = " ";//需要匹配的内容的正则表达式

        Pattern p =Pattern.compile(regex);//将要匹配的正则编译成Pattern类的实例

        Matcher m =p.matcher(str);//拿得到的模式创建Matcher对象

        m.matches();//匹配判断结果

        while (matcher.find()) {

                 System.out.pringtln("matcher.group(0)");//匹配到的信息

        }

十三、常用的正则表达式字符

字符说明
\s匹配空白字符
\d匹配 0~9的数字
\w匹配所有的单词字符,包括 0~9 所有数字、26 个英文字母和下画线
\D匹配非数字
\W匹配所有的非单词字符
$匹配一行的结尾
^匹配一行的开头
()标记子表达式的开始和结束位置
[ ] 表示可匹配的内容,[ab]、[a-z]、[^ab](非ab)、还可以配合&&与||使用

十四、常用正则表达式

正则表达式由普通字符和元字符组成,简单而实用。

简单来说,就是匹配字符串的模板(模式)

用到过的正则表达式,备份下

匹配时间([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])
匹配中文[u4e00-u9fa5]
匹配网址URL [a-zA-z]+://[^s]*
匹配日期(用.分割的)((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]|[0-9][1-9][0-9]{2}|[1-9][0-9]{3})\\.(((0?[13578]|1[02])\\.(0?[1-9]|[12][0-9]|3[01]))|(([469]|11)\\.([1-9]|[12][0-9]|30))|(2\\.([1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})([48]|[2468][048]|[13579][26])|(([48]|[2468][048]|[3579][26])00))\\.2\\.29))

Math类:数学函数

一、常用的静态变量

        Math.PI    π  圆周率

        Math.E     e   自然对数

二、常用的函数

   

Math.ceil()向上取整
Math.floor()向下取整
Math.abs()取绝对值
Math.max(a,b)返回a和b中的最大值
Math.min(a,b)返回a和b中的最小值
Math.sin(弧度角)计算正弦值,其他三角函数同理
Math.pow(a,b)计算a的b次方
Math.cbrt(a)计算a的立方
Math.sqrt(a)计算a的平方
Math.log(a)计算的是ln a
Math.log10(a)计算得是lg a
Math.random()产生0到1的随机数

//如果要算别的对数可以转换一下    log2 3 = ln2  / ln 3;

//如果要改变随机数范围(a,b)   a+(Math.random()*b) ;

五、格式化处理

Format类

Format 是一个用于格式化语言环境敏感的信息(如日期、消息和数字)的抽象基类。

Format类的实例化:
Format f = NumberFormat.getCurrencyInstance();

Format f = DateFormat.getDateInstance();

Format f = new MessageFormat("hello");

一、NumberFormat类

double num = 56.888; 

String s = NumberFormat.getCurrencyInstance().format(num); //加上当前语言的货币单位

String s = NumberFormat.getPercentInstance().format(num); //百分数格式

String s = NumberFormat.getNumberInstance().format(num); //通用数值格式

DecimalFormat 类

位数多了,会自动四舍五入

特殊符号说明
0显示数字,不够则补 0
#显示数字,不够则不发生变化
.小数分隔符
%乘以 100 后以百分比显示
\u2030乘以 1000 后一千分数显示

eg:

DecimalFormat df = new DecimalFormat("0.0000");

DecimalFormat df0 = new DecimalFormat("##.##");

df.format(num); //56.8880

df0.format(num);  //56.89

二、DateFormat类

1.

Date d = new Date();

System.out.println(d);//输出的是这种格式:Sat Aug 13 10:00:20 CST 2022

2.

String s = DateFormat.getDateInstance().format(d);

s = DateFormat.getDateInstance(DateFormat.DEFAULT).format(d);

System.out.println(s);//输出的格式就是2022-08-13,和default(默认)的一个格式

3.

s = DateFormat.getDateInstance(DateFormat.FULL).format(d);

System.out.println(s);//输出:2022年8月13日 星期六

 4.

s = DateFormat.getDateInstance(DateFormat.SHORT).format(d);

System.out.println(s);//输出格式:14-8-30

5.
s= new SimpleDateFormat("现在是 " + "yyyy 年 MM 月 dd 日 E HH 点 mm 分 ss 秒");
System.out.println(s.format(d)); //现在是 2022 年 08 月 13 日 星期六 10 点 07 分 16 秒

三、MessageFormat类

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值