链接:


测试

01-Java基础知识

一、数据类型

基本类型

title...

(just a test....)


目录

注:<按需!!!>目录部分就简单来,在内容部分可以在最开始加一个“本节关键字摘要”

1-语言环境搭建及使用入门

  • 1.1-Java语言环境的搭建
  • 1.2-hello world
  • 1.3-classpath的配置

2-Java基础语法

  • 2.1-
    (数据类型,自增自减,位运算(重点说一下应用场景,特别是两值互换的三种思路))
    (选择结构:switch中选择的类型只有四种(后期加了两种);若某个case缺了break时的执行流程)
    (循环结构:for与while的区别-初始化变量的作用域;最简单的无限循环两种形式)
    (流程控制语句 - break:下方若有语句,则执行不到,会报错,如果要放在前面,可加一个if判断之类的,把break放在if中(常用思路,后面的return同理);在for嵌套时默认跳出当前,在内循环时默认内,当在内循环而希望跳出外循环时-命名内外循环后break outer;)
    (典型题目:...)

3-函数

(函数的三要素:函数名,参数列表,结果类型)
(return:两个功能-结束函数(注意这个),返回结果,因此如果return下方还有语句,则下方语句会被屏蔽执行不到,编译报错)
(定义函数:明确1:这个功能的结果是什么?明确返回值类型;明确2:这个功能需求未知内容是什么?明确参数列表)
(函数重载overlord:只要参数个数或者参数类型不同,与返回值类型无关;参数列表是有顺序的,顺序不同也算作重载)
(函数的内存调用图解:栈-先入后出)

4-数组

(数组:是一个容器,用new新建容器)
(数组定义的格式:一维数组:两种-格式加示例)
(数组作为引用型变量,指向为空时赋值为null而不能是0,0作为地址在计算机中是不能随便拿来用的)
(java内存机制:java对内存的划分-5部分;栈及其特点;堆及其特点,对比;图示略或截图)
(图示:如下两个图)

(数组操作的常见问题:数组脚标越界异常;空指针异常)
(数组长度的获取:属性length-arr.length可获取到数组的长度值)

(数组的应用:)
(注:每个应用都附相应的代码链接)
(应用1:多个数求和-最基本:定义变量,for遍历数组,return;容器:一旦数多了,先存,后操作)
(应用2:求最值-注意点:max初始化为数组中的某个值(建议为第一个arr[0]),不要初始化为数组之外的(设为0而数组中都是负数时);遍历数组时从第二个开始(从第一个开始,则自己跟自己比较);若初始化max=0,也可以拯救一下,将max作为脚标,if(arr[x]>arr[max]) {max=x})
(应用3:将数组转成字符串:需求;思路-字符串的累加或者相连接原理;优化:temp初始化带[,for循环中加入判断是否是最后一个元素来决定加逗号还是方括号)
(应用4:查表法:查表法定义(笔记页最下方);数组容器的特点;使用场景;分析需求。。。笔记那一整页都搬运过来;例子一组数(有规律的数可以造出来不用存,无规律数列给予有序编号作为索引;星期的查表法-鲁棒性-return与抛出异常的对比))
(应用5:转十六进制数组版:问题-顺序反了,解决:每运算出一位,不要打印,先存;反着存;关键点:定义为char数组,每计算出一位进行判断并转为char类型,反着存需要定义索引index并做减减运算,额外定义一个toString函数将字符数组转为字符串而不是在toHex函数中打印,“0x”加在toHex函数的return位置而不是toString函数中)
(应用6:转十六进制去零版:去零的位置-不是在得到字符数组之后再遍历判断,而是更早,在右移运算阶段就进行判断,当剩余为0时即停止;索引的设置:初始化为数组长度,并在while循环中,当条件满足时才自减arr[--index],保证索引index最终指向的是数组中非空位的最后一位,并在toString的参数列表中加入索引,则得到的字符串没有空位,是非常舒适的结果)
(应用7:转十六进制查表版:首先建立表;在循环的计算阶段把转换改为直接查表,省去了判断,非常厉害arr;关键步骤:arr[--index]=chs[temp];)
(应用8:进制转换通用版:定义总的进制转换函数trans,然后将其中不同进制的不同参数加入参数列表;引入API帮助文档,可以直接用java定义好的工具,示例)
(排序:排序有七种算法,最快的是希尔排序)
(应用9:选择排序:思想:大圈套小圈-拿第一个脚标跟剩余元素比较,获取最值并存放到第一个脚标位置,作为一轮,之后拿第二个脚标遍历比较;图解;外循环-多条线的起点,x<arr.length-1因为如图取0-4即是五次,内循环-从起点发出的箭头;返回值为void是因为数组作为引用型变量,调用时把主函数中的地址传给函数,操作后原地址指向的数组已经变了,与基本数据类型的处理相区别)

(应用10:冒泡排序:思想:大圈套小圈-第一轮从0脚标开始,脚标相邻的两个数比较,小的放前,大的放后,得到最大值放在最后一个脚标位置(之后不必再比),第二轮继续从0脚标开始,相邻两数比较,遍历到最后一个脚标的前一个为止,得到第二大的数放在倒数第二个脚标位置,以此类推;图解;外循环-控制行数x<arr.length-1,需要减1,因为如图第一行比较5次,0-4就是5次,内循环-控制每一行的内容,y<arr.length-1-x,-1防止脚标越界,-x控制每行递减的最大值;实际开发中用java写好的功能即可,优化好的,并且自己写容易错:import java.util.Arrays; Arrays.sort(arr);)

(应用11:位置置换代码的抽取:两个排序中都包含了位置置换代码,为提高复用性,抽取出来;返回值为void;参数列表注意不要遗漏了数组arr,否则换完也没有效果)
(应用12:普通查找方式:遍历,效率低;返回值类型-int,索引;参数列表-数组arr和查找目标key;脚标不存在时取一个负数(脚标从0开始,非负,取-1是规范写法) return -1)
(应用13:二分/折半查找方式:思路:1234;前提-必须有序,无序用普通查找,不建议先对无序数组排序后使用二分,因为这样脚标值其实变了;按脚标折中,中间值求法1-mid=(min+max)/2,求法2-位运算更快mid=(min+max)>>1,注意是整除,结果是小数时舍弃小数位;注意点-1-100的数,盲猜50,小,则下一步从51-100里取,而不是50-100,端点值比较过了,去掉;所查找的数不存在时-通过判断是否min<=max,错位时不再折半返回-1;代码体现:最外侧while判断条件的两种形式-一种判断是否与中间值相等(while(arr[mid]!=key)),一种判断头尾脚标有无距离(while(min<=max)))

(二维数组:定义-三种格式(不同格式对应不同的图解和打印含义,分别说一下);内存图解;打印显示含义-三种情况分析;二维数组的长度-arr.length表示二维数组的长度(即有几个一维数组)arr[i].length表示其中某一个一维数组i的长度)
(定义格式1-图解)

(定义格式2-图解1)

(定义格式2-图解2-对一维数组赋值后)

(数组练习:)
(练习1:数组反转;思路:头尾互换,不断移动脚标,直到两个脚标交叉)
(练习2:在有序数组中插入元素时获取插入点;思路:有序数组查找元素用二分查找,元素不在数组中是return min,分析三种不同情况证明确实是min;实际开发中可直接用java自定义的二分查找Arrays.binarySearch(arr, key),其中return -(min+1),查找不到时返回插入点并表示为负数,+1为了区分当脚标为0时仍表示为负数)

(基础部分小结:编程思想)
(在注释中写明分析思路:需求-思路-步骤-相应代码-测试)
(函数复用性:函数复用性-函数抽取封装,主函数中只放需要执行的代码)
(对象复用性:多个类中需要相同功能时,将所需功能封装到指定类中,使用时只要找到功能所属的类就可以了-同为引用型变量,类与数组一样,使用前需要先new一个实体出来才能继续用,示例关键语句(那两句);功能类中可以定义多个相似或集中的功能;使用时不需要考虑功能类中的具体代码,只要用生成的.class文件即可--引出“对象”:ArrayTool tool=new ArrayTool();//这个就是对象,类就是对象;实际开发中用java写好的功能,调用即可Arrays.sort(arr);)

ps:

  • 不确定性在java里是不允许存在的(例如函数重载时参数列表相同会报错)
  • 废话在java里是不允许存在的(例如break或者return下方永远都执行不到的语句会报错)

1-语言环境搭建及使用入门

  • 1.1-Java语言环境的搭建

  • 1.2-hello world

  • 1.3-classpath的配置

END

【JAVA】 01-Java基础知识的更多相关文章

  1. 【Java面试】基础知识篇

    [Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充.源码分享见个人公告.Ja ...

  2. 第76节:Java中的基础知识

    第76节:Java中的基础知识 设置环境,安装操作系统,安装备份,就是镜像,jdk配置环境,eclipse下载解压即可使用,下载tomcat 折佣动态代理解决网站的字符集编码问题 使用request. ...

  3. Java面试题-基础知识

    参考文章:Java面试题-基础知识 基础能力 什么是值传递和引用传递 线程状态有哪些,它们之间是如何转换的 进程与线程的区别,进程间如何通讯,线程间如何通讯? HashMap的数据结构是什么?如何实现 ...

  4. JAVA核心技术I---JAVA基础知识(工具类Arrays和Collections类)

    一:工具类 –不存储数据,而是在数据容器上,实现高效操作 • 排序 • 搜索 –Arrays类 –Collection类 二:Arrays类(处理数组) (一)基本方法 –排序:对数组排序, sort ...

  5. JAVA核心技术I---JAVA基础知识(static关键字)

    一:static特殊关键字用处 –变量 –方法 –类 –匿名方法 二:静态变量:类共有成员 –static变量只依赖于类存在(通过类即可访问),不依赖于对象实例存在. –所有的对象实例,对于静态变量都 ...

  6. Java JDBC的基础知识(三)

    在前面的Java JDBC的基础知识(二)和(三)中,主要介绍JDBC的原理和简单的应用过程.尤其在(二)中,可以发现代码进行多次try/catch,还有在前面创建连接等过程中好多参数我都给写定了. ...

  7. Java JDBC的基础知识(二)

    在我的上一篇Java JDBC的基础知识(一)中,最后演示的代码在关闭资源的时候,仅仅用了try/catch语句,这里是有很大的隐患的.在程序创建连接之后,如果不进行关闭,会消耗更多的资源.创建连接之 ...

  8. Java并发(基础知识)—— Executor框架及线程池

    在Java并发(基础知识)—— 创建.运行以及停止一个线程中讲解了两种创建线程的方式:直接继承Thread类以及实现Runnable接口并赋给Thread,这两种创建线程的方式在线程比较少的时候是没有 ...

  9. 【java基础】01 计算机基础知识

    一.计算机基础知识 1. 计算机 1. 什么是计算机? 计算机在生活中的应用举例 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设 ...

  10. 大数据学习笔记——Java篇之基础知识

    Java / 计算机基础知识整理 在进行知识梳理同时也是个人的第一篇技术博客之前,首先祝贺一下,经历了一年左右的学习,从完完全全的计算机小白,现在终于可以做一些产出了!可以说也是颇为感慨,个人认为,学 ...

随机推荐

  1. uboot学习之五-----uboot如何启动Linux内核

    uboot和内核到底是什么?uboot实质就是一个复杂的裸机程序:uboot可以被配置也可以做移植: 操作系统内核本身就是一个裸机程序,和我们学的uboot和其他裸机程序没有本质的区别:区别就是我们操 ...

  2. 定位公众号页面,跳转之后 vuejs 失效问题

    是第一个页面的. data () { }, 写成了这样,没写返回 {} 5555~. 网页中死活可以,微信中死活不行. data () { return {} },

  3. 如何使您的Wifi路由器更安全,网络安全专家告诉您!

    中国知名“黑客”教父,网络安全专家郭盛华曾说过,Wifi路由器这样设置最安全.因为无线路由器都有不同的接口,不同的设置方式以及可以调整的不同设置.在本文中,我将探讨TP-LinkArcher的界面.您 ...

  4. Java 输入输出图片文件的简单方式

    import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStrea ...

  5. sql2000如何完美压缩.mdf文件

    --收缩数据库 dbcc shrinkdatabase('test_db') , ) --数据文件mdf , ) --日志文件ldf ) --更新

  6. 网页用html还是php

    首先,不管是html还是php,虽然这是两种不同的语言,但是都可以编写网页.不同的是,使用html编写网页是纯静态的网页,无法是运行在本地的,且无法和用户进行交互:而使用php编写的网页则是动态的,运 ...

  7. hibernate插入数据测试无异常,但数据库没有数据

    解决方法: spring test测试默认会将事务回滚,如果想阻止spring transactional回滚,在test方法上加注解@Rollback(false)即可. Hibernate hql ...

  8. android设置系统默认开机时间

    1.设置RTC时间,该时间是如果RCT时钟断电以后使用的默认时间 Android L之前: \alps\mediatek\custom\[project]\preloader\ inc\cust_rt ...

  9. django正常运行确报错的解决方法

    django正常运行却报错的处理方法 出处 : https://www.infvie.com/ops-notes/django-normal-operation-error 报错一:self._soc ...

  10. 【转】iis解决应用程序池**提供服务的进程意外终止进程ID是**。进程退出代码是'0x80'

    转自:http://blog.sina.com.cn/s/blog_56a68d5501013xdd.html 我们公司旗下的红黑互联会遇到这种问题 事件类型: 警告事件来源: W3SVC事件种类: ...