基础知识

1.所有的java代码必须写在类里面,java的入口函数 main方法

public static void main(String[] args){ }

public ----访问修饰符

static ----方法是静态的

final 最终的修饰变量的时候需要赋初始值, 并且在修饰类的时候 该类是不能被继承的;

main-----方法名

String[] args -----参数;

变量和常量

eg: a=1; a=2; 变量a --- 随时可变 常量 12 ----不可变

2.声明一个变量的方式为:

数据类型 变量名; 也可以一开始给以个变量赋值,

数据类型 变量名 = 常量(或者另一个变量);

3.class类:

通过类创建对象的方式: 数据类型 变量名=new 构造方法();

this关键词 指向使用对象; 当参数名和属性名相同的时候主要用来区分参数名和属性名,加了this代表属性名;

原则:属性私有化,方法公开化;如果写公共的方法与类没关系的方法可以

使用static方法,缺点,静态方法不能使用类当中的非静态成员; 一档被修饰静态成员,可以直接用类名来调用;

4.JVM 分为堆 栈 方法区3部分

堆:以new关键词创建的对象;JDK1.7开始 字符串常量池也移到堆区中存放;

栈:以栈帧的形式存在,每调用一个方法,创建一个站帧,其中保存临时变量和参数;

方法区:保存所有静态成员,(static修饰的);所有类的信息;如果参数是基本类型,那么传递的是值,如果是引用类型,传递的是指向堆区中的内存地址;

5.数组:在定义的时候必须声明数组的长度;数组在使用中 可以使用for循环;

还可以使用 for(int i : a){ i一个一个便利数组a中的值

}

对数组中的值进行排序;冒泡排序:规则,相邻元素两两比较交换位置;

选择排序:先选出一个最小的或者最大的 放到边界;

6.数学函数:Math.pow(a,b); a代表的是底数. b代表的是指数;

7.Scanner 扫描器 java.util包下;

Scanner scanner = new Scanner(System.in);从控制台接收输入的内容;

.next();接收下面一次要输入的内容;(一行为单位)

.nextInt();接收输入下面要输入的一次数字;(以行为单位)

.nextLine();接收下一次输入的一行内的数据;(以行为单位)

.next()和nextInt() 不能和nextLine()同时使用

每一行结束的时候,我们手动输入了 换行"\r" 但是用next() 和nextInt()接收的时候,只会接收前面输入的内容, 而把"\r"留下, 而nextLine() 只要见了"\r" 就会默认有一行(会接收);

8.异常:运行期出现的错误:观察错误的名字和行号最重要;

java异常是java提供的处理程序中错误的一种机制,程序在执行过程中出现了异常事件,可以生成一个异常类对象,改异常对象封装了异常事件的信息并将被提交给java运行时系统这一过程成为抛出(throw)异常;

当java运行时系统接收到异常对象时,会寻找能处理这一异常的代码,并吧当前的异常对象交给处理,这一过程称为 捕获(catch)异常;

.try{可能出现异常的代码;

}catch(cException ae){

一旦try中出现了异常,则执行catch

}finally{

无论怎么都会执行final;

}

catch块中必须有和try块中相同的return();并且先finally之后 最后返回return;

异常分类(Throwable)

Error : 称为错误,有JVM抛出,包括动态链接失败,虚拟机错误等,程序不对其做处理;

Exception : 所异常类的父类,一般需要用户显式的声明或者捕获

RuntimeException:一类特殊的异常,如数组下标超出等,产生比较频繁,处理麻烦,(一般可以有系统自动检测用户可不必对其处理)

9.Math类 java.lang.Math;提供了一系列静态方法用来科学计算,方法的参数和返回值一般为double类型;

abs()绝对值

acos,asin,atan,cos,sin,tan

sqrt()平方根;

pow(double a,double b)a 的b次幂;

log();自然对数;

max(double a,double b);

min(double a,double b);

random()返回0.0---1.0的随机数;

toDegrees(double angrad);弧度-->角度;

toRadians(double angdeg);角度--->弧度;

10.Enum枚举类型

只能够取待定值中的一个;

使用enum关键字;

是java.lang.Enum类型;

11.重写equals()

来比较两个对象是不是相同,其中判断的规则可以根据需求自己定义;

12.Comparable 泛型接口

compareTo() 用来自定义排序规则; 大于 rerun 1 等于 return 0 小于 return-1;

数据类型

java的数据类型分两种

1.基本类型:

byte 1字节 8位

short 2字节 16位

int 4字节 32位

long 8字节 64位

float 4字节

double 8字节

boolean 1字节

char 2字节

2.引用类型:

类 (string 属于类)

数组

接口

3.源码 反码 补码

源码-----原数本身;

反码------符号位不变,其他位取反

补码------反码+1

补码专门用来表示负数,负数的补码为反码+1, 正数的补码就是自己本身;

4.运算符:

数学运算符:+ - * / % ++ --; a++先运算 后增加,++a 先加价再运算;

关系运算符:> < == <= >= != 计算出的结果是boolean类型

逻辑运算符: ! && || & | 对boolean类型进行计算

短路语: 只要前一个条件能计算出表达式的值后面都不会再进行;

全路语: | & 需要走完全部的路程;

位运算: & | ^ >> << >>> <<< 全部2进制位数都移动

5.if条件语句/循环语句;(循环三要素:计数器 循环条件 计数器更新)

switch case: 循环,break;

循环

while() for(); do{代码块} while{循环条件};

6.强制类型转换;

int i=128;

byte j=(byte)i;

char a=(char)i; a计算出的为ASCII码;

7.String(字符串)类型

String name = new String(); 使用new 创建;

String name = "张三"; 直接赋值, String 的底层是字符数组;

String 之间可以运算, 实现字符串的拼接;

String a="asdf";

String b="ads";

方法:toUpperCase() 大写转换;

float 精确为小数点之后7位;

double

8.包装类(在比较数字的时候一定要拆包装, 使用)integer在进行比较的时候,如果在8位

以内(-128---127)默认有一个缓存,对象会指向缓存的地址;

通常情况下,类下的属性都应该定义成包装类;

包装类都是引用类型;

byte 1字节 Byte

short 2字节 Shot

int 4字节 Integer

long 8字节 Long

float 4字节 Float

double 8字节 Double

boolean 1字节 Boolean

char 2字节 Character

Integer.paseInt(str); 将字符串中数字转换成Int数据类型的数字;

9.String字符串:

底层是char数组:

equals() 比较两个字符串的值是不是一致;

String.valueOf();强制类型转换; 参数为Object;

数组的长度length();

substring();截取字符串;一个参数的时候为开始截取的位置到结束.当参数为两个的时候,第一个为开始的位置,第二个参数为结束的位置;

replace();替换数组中的元素;第一个参数传要被替换的字符,第二个参数传替换之后的字符;

replaceAll();替换数组中全部选定的元素;第一个参数传 匹配的正则表达式,第二个参数传替换成什么字符串;

拼接字符串:

StringBuilder(); 非线程安全; 单线程拼接的时候使用;

append(" ");追加字符;

StringBuffer(); 线程安全; 多线程拼接的时候使用;

append(" ");

String+=的拼接方式 在jdk1.8的时候已经被优化,性能已经等同于StringBuilder();但是在开发中禁止使用;

instanceof 判断类型是否相同

数组

1.定义:在堆区中创建一个连续的内存空间来保存对象或者变量;

2.定义方式:

数据类型+[] 对象名=new 数据类型+[数组长度] //定义的时候不赋值

数据类型+[] 对象名={元素,元素} //定义的时候赋值

访问方式

对象名[数组的下标] 下标从0开始;

数组长度

数组名.length

增强for

for(数据类型 变量 : 数组对象){

方法体

}

3.排序:

冒泡排序,相邻两数互相比较,两两交换;

选择排序:用第一个和后面每一个比较;

数组的缺点:长度是固定的; 数组在扩容的时候不方便;

用final 修饰的String 是不能被继承的

4.集合

(1) ArrayList()------属于java.util包;若要提升性能,可以在参数中直接写出要添加的个数,固定size();的长度即可;

List ----------------

构造方法---如果不传参数,默认底层数组的长度是10;

如果有参数,底层数组长度和所传参数相同;

add()方法--代表向集合中添加元素,每添加一个 size 加1;

--当有两个参数的时候第一个为索引值,第二个为数据值

remove()方法,参数为索引值,

list.contains()传入一个元素,判断是否存在这个元素;

size方法--返回集合的长度(添加才算) 一旦长度超过底层数组长度 这自动扩展,每次扩展的容量为 原长度的1.5倍;

get方法--传下标,

ArrayList---遍历,

增强for

for(Object a:array){}

普通

for(int i=0;i<arr.size();i++ {}

迭代器迭代:

Iterator it = list.iterator();

while(it.hasNexe()){

Syso(it.next);

}

(2).HashSet(); 无序 去重复; 不能通过get()取出;

Set();

remove(); 参数传递的是数值;

(3).HashMap();

映射----键值对;

put( , )方法--存放---参数的类型为Object---存放的过程中(键)key不可重复; 值可以重复;

get(key)方法----获取---获取的过程参数为key;

containsKey();判断是不是存在这个key;

containsValue(); 判断是不是存在这个值value ;

hashMap()不支持增强for循环;

HashMap map = new HashMap();

5.二维数组:看成以数组为元素的数组----多维数组的声明和初始化,应该从高维到低维的顺序进 行;

静态初始化: int intA[][] = {{1,2},{2,3},{3,4,5}};

动态初始化: int a[][] = new int[3][5];

int b[][] = new int[3][];

b[0] = new int[2];

b[1] = new int[3];

数组的拷贝:

使用java.lang.System类的静态方法;arraycopy

System.arraycopy(s,0,sbak,0,s.length)各参数分别代表 s为从哪个数组复制,0代表从s的0号索引开始复制 , 然后复制到 sbak数组的0号索引开始,长度为s.length;

6.泛型集合:

规范了数据类型的集合;再定义的时候类型后用<规定的类型> 注意.泛型中不能使用基本类型;(但是可以用包装类替代)

例如 List <String> list = new ArrayList(); 规范了该对象只能存放String类型的元素,从Jdk1.7之后支持泛型推导,但是在在JKD1.7之前是不能被识别的,必须完整写,例如:

List <String> list = new ArrayList<String>();

Set<String> set = new HsahSet<String>();

Map<Integer , String> map = new HashMap<Integer , String>();

7.二分查找

前提条件:一个排序完整的数组才可以使用;

java基础(一)基础认识、数据类型相关推荐

  1. java8种基本类型长度_【Java基础】Java的8种基本数据类型深入介绍

    Java的8种基本数据类型介绍 基本数据类型存储大小说明,在了解存储大小说明之前我们先来了解几个基本的概念:位(bit):位表示的是二进制位,一般称为比特,是计算机存储的最小单位. 字节(byte): ...

  2. 【Java基础系列】基本数据类型及包装类

    Java共有8中基本数据类型:byte.boolean.char.short.int.float.long.double. 对应的包装类分别为:Byte.Boolean.Character.Short ...

  3. Java基础(一) 八大基本数据类型

    自从Java发布以来,基本数据类型就是Java语言的一部分,分别是***byte, short, int, long, char, float, double, boolean***. 其中: 整型: ...

  4. Java 过一下基础

    点我跳过黑哥的卑鄙广告行为,进入正文. Java多线程系列更新中~ 正式篇: Java多线程(一) 什么是线程 Java多线程(二)关于多线程的CPU密集型和IO密集型这件事 Java多线程(三)如何 ...

  5. java包装_Java基础之神奇的包装类(一)

    1. 导读 JAVA中针对八种基本数据类型提供了相对应的包装类, 今天主要基于几个问题来分享下个人对于包装类的理解, 本期先分享下面两个问题: .1 什么是包装类? 有了基本类型, 为什么还需要有包装 ...

  6. java nextline_Java编程语言基础的9根支柱

    Java编程的基础概念包括:数据类型,分支与循环等. 1.HelloWorld 先从最简单的Java程序开始: public class HelloWorld{ public static void ...

  7. Java培训零基础学员必须要知道的知识点

    学习java那么遇到的知识点有很多,很多同学都会问到一些关于java的编程知识点,下面小编就为大家整理一下java培训零基础学员必须要知道的6个知识点. Java培训零基础学员必须要知道的6个知识点: ...

  8. java 必备_Java基础必备

    标签: 写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希 ...

  9. 2.1JAVA基础复习——JAVA语言的基础组成注释和常量变量

    JAVA语言的基础组成有: 1.关键字:被赋予特殊含义的单词. 2.标识符:用来标识的符号. 3.注释:用来注释说明程序的文字. 4.常量和变量:内存存储区域的表示. 5.运算符:程序中用来运算的符号 ...

  10. java ibatis 获取执行的sql_小程序官宣+JAVA 三大框架基础面试题

    每天给你诚意满满的干货 虽然每天都会写代码,但编程语言里有太多知识点,许多知识长时间不用就会忘记,在我们要去参加面试或是其它一些场景下,需要做些题来查缺补漏.我在搜索过程中发现没有太好的刷题小程序,所 ...

最新文章

  1. Jenkins持续集成学习-Windows环境进行.Net开发4
  2. C++中各种弹出对话框
  3. 批量导入sql文件。
  4. 学完java学swift_前言最近学完Swift之后一直没有机会实战,发现由于Swift发展历史原因,目前网上大部分的算法都是使用C、Java或其他语言实现的,几乎没有使用Swift实...
  5. CodeForces - 1316B String Modification(找规律)
  6. 一文学会,胶位偏移、缺胶、断胶、溢胶检测
  7. angular示例_用示例解释Angular动画
  8. Vue 高效清空表单,一键清空表单
  9. day23 python学习 类 人狗大战
  10. mysql 几个超时参数(timeout)解释
  11. oracle的sql字符串转义,sql – 在Oracle数据库中搜索带转义的字符串
  12. 三菱 J2 J2S J3 J4 编码器 电机文件 修改ID 修改功率 修改型号
  13. lanp+nginx实现动静分离
  14. 上海电力大学计算机专业全国排名,上海电力大学有哪些专业 上海电力大学专业排名...
  15. C语言中getch()、getche()、getc()、getchar()、gets()、fgetc()、fgets()的区别与使用
  16. android 高德地图poi搜索周边
  17. vuepress-theme-reco评论管理
  18. ubuntu 里安装 OracleXE
  19. E-puck机器人-小白学习笔记(二)代码浅解读
  20. 超简单的Python教程系列——异步

热门文章

  1. 面向稀有事件的 Logistic Regression 模型校准
  2. Rime添加Emoji输入方案
  3. wox开机自启_Wox具有一切支持的Windows启动器
  4. BC32-CSQ总是99【SIM 有锁】
  5. 微服务Feign调用后开启Schedule报错No thread-bound request found: Are you referring to request attributes outsid
  6. 80核处理器_8核处理器+4K屏加持,首发6399元的联想YOGA 27一体机体验怎么样?
  7. 第21章 DHCP
  8. DPDK应用示例指南简介(汇总)
  9. 2019最新 《播布客鸟哥的Linux私房菜教程》
  10. 淘宝API item_search_similar - 搜索相似的商品