对大多数同学来说在系统学习入门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);  //1a=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 转化为 StringStringBuilder 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 <b.length; i++) {System.out.println(b[i]);// 1 2 3}

<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[][] 就代表数组中有个数组类型

一些相关笔记

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

  1. Java类和对象知识点的整理

    通过学习视频,特意写下此次博客.本次博客目的是为了理解面向对象的思想,掌握面向对象的基本原则以及 Java 面向对象编程基本实现原理,熟练使用封装.继承.多态面向对象三大特性.仅是博主本人总结,可能会 ...

  2. JAVA面试知识点个人整理

    本文是一些JAVA面试的基本知识点个人整理,方便自己记忆回顾,摘自ThinkWon大神的系列文章JAVA面试题. 文章目录 静态内部类 == 和equal 参数传递 BIO,NIO,AIO File的 ...

  3. 北大青鸟java半年学费,Java核心知识点

    开头 关于程序员,除了做项目.看视频来提高自身的技术之外,还有一种提升自己的专业技能就是:多!看!书!MySQL俨然已经成为了IT技术人员必须掌握的核心技能之一! <MySQL从入门到精通> ...

  4. 最全最新的的Java核心知识点整理!!! 【推荐】

    前言: 想要文档版的小伙伴们可以私信我领取哦,更加清晰 一目了然 ~ Java核心知识点! 博客整理出来的稍微有点乱~ 目录 目录 -1 JVM - 19 2.1. 线程 - 20 2.2. JVM ...

  5. 超硬核,拒绝内卷全靠阿里大能整理的这份 Java 核心手册,堪称强无敌,谁来不说一声牛 AC

    2022 年注定是不寻常的一年,在今年因为疫情以及各大大厂纷纷传来裁员的消息,引得整个互联网圈动荡不堪.腾讯裁员 30%.京东.百度.字节等大厂都在纷纷裁员,引的这些中厂和小厂也跟风裁员. 这个时候外 ...

  6. 牛逼了!8000页Java 核心知识点+面试题整理,超全!

    今年金九银十要来了,很多小伙伴都在准备跳槽.小编为大家汇总了份Java核心知识点面试题和答案,基本上涵盖了所有后端技术栈,相信可以帮助大家拿到自己心仪的offer. 截了几张图,大家可以仔细查看左边的 ...

  7. 阿里P8整理总结,入职大厂必备Java核心知识(附加面试题

    前言 今天就给大家分享一波一位小伙伴面试大厂的经历.知识点和面试题分享,主要内容包括:JVM.JAVA集合.JAVA多线程并发.JAVA基础.Spring原理.微服务.Netty与RPC.网络.日志. ...

  8. 架构师花费近一年时间整理出来的Java核心知识,直击优秀开源框架灵魂

    前言 前段时间从蚂蚁金服二面回来,有些许面试新的给大家分享. 毕业至今两年一直在A金融公司做Java开发,在一个公司时间长了我也想换个环境,于是在网上投了简历,选择公司我的目标很明确还是金融领域,最好 ...

  9. Java核心知识点 --- 线程中如何创建锁和使用锁 Lock , 设计一个缓存系统

    理论知识很枯燥,但这些都是基本功,学完可能会忘,但等用的时候,会发觉之前的学习是非常有意义的,学习线程就是这样子的. 1.如何创建锁? Lock lock = new ReentrantLock(); ...

最新文章

  1. Docker创建自己的github(Gitea)
  2. 《Deep Learning With Python second edition》英文版读书笔记:第十一章DL for text: NLP、Transformer、Seq2Seq
  3. 20155226 2016-2017-2 《Java程序设计》第一周学习总结
  4. 如何让光标处于EditText的末尾
  5. Nginx静态资源优化配置之tcp_nopush和tcp_nodelay
  6. 阿里云服务器新手安装nginx
  7. 如何使用 SAP API Portal Policy Editor 给 SAP API 调用自动添加认证信息
  8. Java Spring log源代码学习
  9. 欧拉函数 cojs 2181. 打表
  10. Python 37 进程池与线程池 、 协程
  11. 别小看无人配送,长大了就是自动驾驶的最终实现。
  12. 整数的素因数权重分析
  13. Windows Server 2012安装 .NET Framework 3.5
  14. 软件自动化测试题,软件自动化测试模拟题.doc
  15. 流(stream)是怎么一回事
  16. aix linux tcp连接数,修改windows、linux、aix等系统TCP/IP 参数
  17. Matlab多种群遗传算法
  18. 用C 程序理解汉字的机内码表示
  19. 云端虚拟化技术的应用
  20. Oracle安装时先决条件检测失败

热门文章

  1. 凸多边形面积的最短平分线
  2. ESP8266 修复刷完nodemcu固件后无法连接wifi网络的故障
  3. Python-scapy(白帽)[ARP无法欺骗手机吗][DNS欺骗不了https吗]
  4. web基础(html的基本知识)
  5. c++类内的static变量初始化和static函数
  6. cad怎么输出为pdf?这个办法不妨试试
  7. 通过Xcode 10链接libstdc++来深入分析tbd文件
  8. Android音乐设计论文,基于安卓Android的音乐播放的设计与实现
  9. Opengl ES 1.x NDK实例开发之八:旋转的纹理金字塔
  10. spring中的Aware接口的作用以及代码剖析