栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java核心密卷知识点新整理1---4章节

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java核心密卷知识点新整理1---4章节

        对大多数同学来说在系统学习入门java基础知识以后依旧有很多 很多需要查缺补漏的地方,核心密卷这本书可以更好的进行基础的巩固和拓展,这本为第一卷 基础大多数都学过,将重要和易混的地方进行整理。

第一本较为基础可以用电子版,核心密卷2建议买书研究。

需要核心密卷1电子版的同学可以私信

                                        

一:最开始的当然是配置环境和安装java编译软件,本人用的idea比较好用(idea有试用期,购买较为昂贵,博主可以提供(免费)推荐,需要请私信) 二:Java的基本程序设计结构

——————————————以下为博客学习内容—————————————————

一:注释:

           // 为单行注释

             多行注释

二:数据类型

 常见的数据类型为 :

1.整型 :  int  (4字节)short(2字节)  long(8字节)  byte(1字节)

2.浮点:float(4字节)  double(8字节)

 3.NAN(不是一个数字)

 4.char类型(要想弄清char类型, 就必须了解Unicode编码机制。                                                    Unicode打破了传统字符编码机制的限制。 在Unicode出现之前,                                                  已经有许多种不同的标准: 美国的 ASCII、 西欧语言中的
 ISO 8859-1、 俄罗斯的KOI-8、 中国的GB1803 0和BIG-5等,现在主要用utf-8)

!!!字符集的转换在以后的工作中用到的地方很多,数据库写入和读                                              6.boolean类型,为false 和true 在应用判断语法和算法有着很大的作用

三:变量与常量 

<1>    用数据类型定义一个变量,用来储存数据 ,可以进行更改

<2>    常量通常使用final指示常量,这里用的较少,大多较为生疏,使用代码来加深印象

 final int a=1;
        System.out.println(a);  //1
        a=2;
        System.out.println(a);  //java: 无法为最终变量a分配值

在对变量a进行更改的时候会报错 java: 无法为最终变量a分配值

<3>   枚举类型 在后续章节统一整理

四:运算符

<1>    在Java中,使用算术运算符+、一、*、/表示加、减、乘、除运算。

( 当参与I运算的两个操作数都是整数时,表示整数除法;否则,表示浮点除法。 整数的求余操作(有时称为取模)用%表示。 例如,15/2等于7, 15%2等于1, 15.0/2等千7.5。)

<2>    注意double浮点溢出的问题和strctfp关键字,但是不属于大问题,知道存在即可 ,遇到了再进行系统的分类

<3>     数学函数与常量是非常重要i的,能够节省大量的计算和代码书写,具体的内容会再写一篇进行系统学习和笔记。

<4>      数值类型之间的转换:

                          

 图中有6个实线箭头, 表示无信息丢失的转换;另外有3个虚线箭头, 表示可能 有精度损失的转换。

注意:当用一个二元运算符连接两个值时(例如 n + f, n是整数, f是浮点数), 先要将两个操作 数转换为同一种类型, 然后再进行计算。

<5>   强制类型转换

强制转换方法有很多但都是大同小异,后续在进行统一整理笔记

<7>    自增与自减子

有基础的编程学习人员都会知道,分为++i 或者i++,减号同理,就不再细细描述。但是表达式中尽量不要使用自增和自减,容易让人混淆,还可能带来一些bug

<8>  关系和boolean运算符

在判断语句中经常使用 用true 和 false 来进行判断 表达式是否正确,并且很多方法的返回值为boolean类型,算法中也时常用到,详细了解可以事半功倍,

还有个最有用的(三元操作符) 这个操作符有时很有用。如果条件为true,下面的表达式

                                          cond巾on ? expression1 : expression2

就为第一个表达式的值, 否则计算为第二个表达式的值。 例如,            X < y ? X : y    就会返回x和y中较小的一个。

<9>    括号优先级 (比较重要)

                       

五:字符串(非常重要)

<1>   子串

St ring类的substring方法可以从一个较大的字符串提取出一个子串。创建一个由字符 “Hel ” 组成的字符串六:输入输出    主要使用字符串中的substring方法

String greeting = "Hello"; 
String s = greeting.substring(0, 3); 

<2>   拼接

与绝大多数编程语言一样可以同过拼接来构建新的字符串,在输出时经常配合汉语使用和表述答案

String expletive = "Expletive";
String PG13 = "deleted"; 
String message= expletive+ PG13;

如果需要把多个字符串放在一起,用一个界定符分隔, 可以使用静态join 方法:

String all= String.join("/", "S", "M", "L", "XL"); 
// all is the string "S / M / L / XL" 


在Java 11中,还提供了一个 repeat方法:
 

String repeated = "Java". repeat (3); // repeated is "JavaJavaJava" 

<3>  检测字符串是否相等

1.  判断方法一种是 “ equals”方法,还有一种是 “==” 两者之间存在差别equals 检测的是字符串是否相等,  “==”检测地址是否相同,地址相同的字符串就相等了,比较字符串是否相同的时候用equalsla来进行比较。 

(补充)2  要想检测两个字符串是否相等, 而不区分大小写, 可以使用equalslgnoreCase 方法。

<4>   空串与Null串   不做多的赘述

<5>   字符串API  

<6>构建字符串

在构建字符串时,进行添加和删除操作非常繁琐和不方便,效率非常低,通过构建一个空的字符串构建器,使用StringBuilder类就可以避免这个问题发生:例如:

StringBuilder builder= new StringBuilde「();
//当每次需要添加一部分内容时,就调用append方法。
builder. append (ch) ; / / appends a single character 
builder. append (str) ; //appends a string 

(StringBuilder类前身时StringBuffer,效率稍微有一些低,视情况而用)

构建完成以后想要活得String类型的字符串可以通过调用同toString方法,可以将StringBuider转化为String类型,

String completedString = builder. toString () ; 

以下整理了一下Stringbuilder()的方法

                      

                       

字符串相关笔记

String 构造方法:
public String()                     创建一个空白字符串,不含有任何内容
public String(char[] chs)           根据字符组的内容,来创建字符串对象
public String(byte[] bys)           根据字节数组的内容,来创建字符串的对象
String s="abc"                      直接赋值的方式创建字符串对象,内容就是abc
字符串比较:
s1.eauals(s2); "==" 指比地址  ,"equals" 比内容
public Char cahrAt(int index): 返回指定索引处的char值,字符串的索引也是从0开始的
public int length();                返回此字符串的长度
字符串取出:
String line="abc"
line.cahrAt(int index):       此方法 可以单独取出 字符串中的单个元素:
 StringBuilder:

 StringBuilder sa=new StringBuilder();
        sa.append("");                添加字符串
将 StringBuilder 转化为 String
 StringBuilder a=new StringBuilder();
        a.append("asd");
        String b=a.toString();
        System.out.println(b);  //asd  
将 String 转化为 StringBuilder 
         String s="fgh";
    StringBuilder ss=new StringBuilder(s);
        System.out.println(ss);
+StringBuilder()			 		//构建一个容量为16的字符串构建器
+StringBuilder(capacity: int)		 //构建一个指定容量的字符串构建器
+StringBuilder(s: String)			//构建一个指定字符的字符串构建器
 
+append(data: char[]): StringBuilder	//追加一个字符数组到字符串构建器
+append(data: char[],offset: int,len: int): StringBuilder//追加data中的子数组到字符串构建器
+append(v: aPrimitiveType): StringBuilder//将一个基本类型值作为字符串追加到字符串构建器中
+append(s: String): StringBuilder//追加一个字符串到字符串构建器
+delete(startIndex: int,endIndex: int): StringBuilder//删除从startIndex到endIndex-1的字符
+deleteCharAt(indexL int): StringBuilder//删除给定索引位置的字符
+insert(index:int,data: char[],offset: int,len:int): StringBuilder//在字符串构建器的给定索引位置插入数组data的子数组
+insert(offset: int,data: char[]): StringBuilder//向构建器偏移位置插入数据
+insert(offset: int,b:a: PrimitiveType): StringBuilder//向该字符串构建器插入一个转换为字符串的值
+replace(startIndex: int,endIndex: int,s: String): StringBuilder//将该构建器从startIndex到endIndex-1的位置的字符替换为给定的字符串
+reverse(): StringBuilder//倒置构建器中的字符
+setCharAt(index: int,ch: char): StringBuilder//将该构建器的指定索引位置设置为新的字符
 
StringBuilder类提供了几个重载方法,可以将boolean、char、char数组、double、float、int、long和String类型值追加到字符串构建器。例如下面的代码将字符串和字符追加到stringBuilder,构成新的字符串"Welcome to Java"
 
StringBuilder stringBuilder=new StringBuilder();
stringBuilder.append("Welcome");
stringBuilder.append(" ");
stringBuilder.append("to");
stringBuilder.append(" ");
stringBuilder.append("Java");
 
StringBuilderl类也包括几个重载的方法,可以可以将boolean、char、char数组、double、float、int、long和String类型值追加到字符串构建器。
 
stringBuilder.insert(11,"HTML and");
 七:输入和输出

<1>   控制台的输出不多赘述

 System.out.println();

<2>   通过控制台进行输入,首先需要构造一个与“标准输入流”System.in关联的Scanne对象,然后使用Scanner类的各种方法输入,nextLine方法为读取一输入

Scanner in = new Scanner(System.in);
String name = in. next Line ();  //nextline方法将读取一行输入
String firstName = in. next(); //读取一个单词(以空白符作为分隔符)
int age = in. next!nt () ; //读取一个整数

<3>Scanner的输入是可见的,所以Scanner类不适用于从控制台读取密码,Console类来实现这个目的,可使用下列代码  !(读取的是一行)(返回的密码存在一个字符数组中,而不是字符串)

Console cons = System. console(); 
String username = cons. readline ("User name: "); 
char[] passwd = cons.readPassword("Password: ");
八:控制流

<1>块作用域  : 指复合语句 用大括号括起来的语句,块请确定了变量的作用域,一个块可以嵌套在另一个块中

<2>条件语句  (基础知识 不多赘述)

<3>中断控制流程 的语句    break(退出循环语句)   continue(退出当前循环)

九:大数

大数目前理解的就是 特别庞大的数字的运算法则,因为数字大 超过了传统的int,double,float de 的数值范围,所以使用大数,

<1>   如果基本的整数和浮点数精度不能够满足需求, 那么可以使用]ava.math包中两个很有用 的类: Biglnteger 和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。Biglnteger 类实现任意精度的整数运算,BigDecimal实现任意精度的浮点数运算。

大数的运算法则写法和平常不太相似,整理出来供大家使用

例:

 

 

 

 

十:数组

<1>

<2>  数组拷贝:  将一个数组的所有值拷贝到一个新的数组中去, 就要使用 Arrays 类的 copyOf 方法

        int[]   新数组 = Arrays.copyOf(被拷贝的数组, 新数组的长度); 

        int[] a={1,2,4,5};
        a[2]=3;
        int[] b= Arrays.copyOf(a,3);
        for (int i = 0; i  

<3>命令行参数   (主函数接收到的命令也是一个数组,String[]就可以看出来 )书中说的很浅薄 ,没有说出具体操作实例   举个书中例子看

                    

 <4>数组排序

1. 对数值型的数组进行排序,可以使用Arrays类中的sort方法:

int[] a= {.......} ;

Arrays.sort(a);

2. 算法方面的排序方法 ,根据不同的题型有不同的方法,动态规划等

<4>多维数组

多维数组适用于表格等复杂的排列方式

 double[][] balances= new double[NYEARS][NRATES];   //创建二维数组
  int[][] magicSquare ={16, 3, 2, 13},
                       {5, 10, 11, 8},
                       {9, 6, 7, 12},
                       {4, 15, 14, 1}   //直接创建二维数组
balances[i][j] //按照表格代表不同的二维数组中的数字

在java中没有多维数组这个概念 ,多维数组其实就是数组中的数组例如  int[] 中 int代表的就是数组中的数据类型,int[][] 就代表数组中有个数组类型

一些相关笔记

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/715738.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号