JAVA学习笔记基础知识.doc
2014122701_Java学习笔记001
Java学习笔记0011、什么叫java?Java是现在最流行的编程语言之一,也是拥有众多厂商支持的编程语言之一,同时Java 已经成为了应用层开发的一个标准;Java之所以能够发展的如此良好,归结于Java的反射机制;Java是一门面向对象的编程语言,提供了垃圾自动收集机制,提供了多线程与反射机制,同时Java具备很强的可移植性;JDK:Java开发工具包;JRE:Java运行时环境,也就是说要运行Java程序,这个环境必须安装;ClassPath:配置类的加载路径;PATH:是操作系统的程序配置路径;单行注释://多行注释:/*…*/文本注释:/**…*/,在Myeclipse之中敲一个杠俩*回车即可;Java的基本数据类型·数值型:byte、short、int 、long 、float、double·字符型:char·布尔型:booleanJava引用数据类型:类、数组、接口;(数据类型的一些默认用法:<·表示整型永恒用int·表示小数永恒用double·在进行数据传输字符的转码过程之中都用byte;·表示日期或者文件大小都是用long;·表示逻辑关系的时候往往都是用boolean ;>)三目运算符:(条件1 逻辑运算符条件2 ) ?结果1:结果2<当前面的条件满足的时候执行结果1的代码,当条件不成立执行结果2的代码>逻辑运算符:&乘| 加;程序的循环结构:顺序结构、循环结构、条件结构;方法:是一段可以重复利用的代码块,利用方法可以对一些重复的功能进行包装,以便重复调用节省代码编写;方法:方法重载、方法的覆写方法重载:方法名称相同,参数类型不同;方法覆写:方法名称、返回值类型、参数类型都相同;2、企业平台结构组成操作系统(windows、linux、unix)+数据库(mysql、sqlserver、oracle)+中间件(tomcat、weblogic)+编程语言(Java、c);<一次面试:面试官问我什么叫中间件:我说是jar包,你说对不?>。
第三章JAVA语言基础笔记
Java语言基础本章的主要目标:1、了解java的主类的结构;2、了解java语言中的基本数据类型;3、了解java语言中的常量和变量;4、了解java语言运算符的使用;5、了解java语言数据类型的转换;6、了解java语言中代码注释与编码规范;Java主类结构Java语言是面向对象的程序设计语言,java的基本组成单元就是类,类体又包括属性和方法,而每一个程序都必须包含一个main()方法,含有main()方法的类称之为主类;我们用一个程序来看一下主类的结构:public class First{static String s1=”java”;public static void main(String args[]){String s2=”学习之旅!”;System.out.println(“s1”);System.out.println(“s2”);}}这就是一个简单的java程序,包含了类的结构;需要注意的是,java代码中所有的标点符号,括号都是需要在英文状态下输入;否则在编译的时候将会报错;通常将类的属性称之为类的全局变量(又叫成员变量),将方法中的属性称之为局部变量;全局变量声明在类体中,局部变量声明在方法体中;Java程序中的main()方法必须声明为public staticvoid 。
main()方法是程序开始执行的位置;Java语言严格区分大小写;基本数据类型Java中的基本数据类型有字符和数字之间可以相互转换;在程序执行过程中,其值不能改变的量称为常量,其值能改变的量称之为变量;Java语言规定标识符由任意顺序的字母、下划线、美元符号、和数字组成,并且第一个字符不能使数字字符;Java中允许使用汉字或其他语言作为变量名,但不建议使用;常量名通常使用大写字母,但这并不是必须的,很多java程序员使用大写字母表示常量,常常是为了清楚的表明正在使用常量;由于变量被定义出来后只是暂存在内存中,等到程序执行到某一个点后,该变量会被释放掉,也就是说变量有他的生命周期;在一个方法中,局部变量和成员变量同名时,此时成员变量将被隐藏,即这个成员变量在这个方法中暂时失效;如果从低精度类型向高精度类型转换,则永远不会溢出,并且总是成功的;把高精度类型转换为低精度类型则必然会有信息的丢失;从低精度类型向高精度类型转换,系统自动执行,程序员无需进行任何操作,这种类型的转换又叫隐式转换,从高进度类型向低精度类型转换,则需要强制执行,又叫强制类型转换,又称显示转换;当一个数超过了要转换的类型的最大值,则转会后的数值则会变为最小值,这也可以理解为数据的溢出;代码注释分为单行、多行、和文档注释;编码规范,简言之就是利人利己;。
JAVA(J2SEJ2EE)学习笔记090911
JAVA(J2SE/J2EE)JAVA(J2SE/J2EE)学习笔记学习笔记/kv2004Java Paradise 群号:81556987,欢迎传播!JA V A(J2SE)基础一、JAVA 语法基础标识符-date:0908111.什么叫标识符?就是一个名字2.在JAVA 中,遇见的标识符有类名、方法名和变量名。
3.标识符的命名规则:i.标识符有字母、数字、下划线(_)以及美元($)符号组成。
ii.标识符不能以数字开头iii.不能和JAV A 中的关键字或者保留字重名4.标识符的命名规范:i.最好不要一下划线(_)或者美元($)符号开头ii.如果有多个单词组成,那么每个字符的首字符都大写。
例如:class Student{}class HelloWorld{}iii.如果标识符是方法名或者变量名:首字母应该小写;如果有多个单词组成,那么从第二个单词开始,首字母大写。
例如:String name;//用户名int stuAge;//学生的年龄iv.标识符最好有一定的意义。
int 整数=1;v.如果是常量名,那么全部字母都大写。
final double PI=3.1415926;关键字-date:0908111.什么叫关键字?具有特殊意义的一些单词。
2.举例说出几个关键字byte short int long float double char booleanpublic private protectedvoidreturntrue falsestatic final abstractif elseswitch caseforwhiledotry catchcontinuebreak数据类型的转换-date:0908111.基本数据类型可以相互转换(除boolean)2.可以将低精度的数据类型直接赋值给高精度的数据类型int i=1;short s=1;i=s;//可以自动进行转换3.当把高精度的数据类型赋值给低精度的数据类型时,必须强制类型转换。
ACCP6.0_S1_JAVA_第一章_学习笔记
第一章初识Java1.1 什么是程序程序一词来自生活,通常指完成某些事务的一种既定方式和过程。
在日常生活中,可以将程序看成对一系列动作的执行过程的描述。
对计算机所下达的每一个命令称为指令,它对应着计算机执行的一个基本动作。
告诉计算机按照某种顺序完成一系列指令,这一系列指令的集合称为程序。
计算机程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合。
人与计算机对话使用计算机语言,这样人表达的想法,下达的指令计算机才能够明白。
计算机语言有很多种,它们都有自己的语法规则。
选用其中一种来描述程序,传达给计算机,Java就是多种语言中的一种。
计算机阅读程序,也就是阅读指令集,然后按部就班的严格执行。
编制程序时选用的语言是那种有利于人类读写的语言,俗称高级语言。
但是计算机仅仅明白0和1代码组成的低级语言(即二进制形式的机器语言程序),中间需要一个翻译官进行语言转换(对高级语言进行编译或者解释)。
1.2 为什么学习Java语言Java是Sun Microsystems于1995年推出的高级编程语言。
Java 领域的JavaSE、JavaEE技术已发展成为同C#和.NET平分天下的应用软件开发平台和技术。
Java技术可以应用在几乎所有类型规模的设备上,小到计算机芯片、蜂窝电话,大到超级计算机,无所不在。
1.3 Java可以做什么在计算机软件应用领域中,可以把Java应用分为两种典型类型。
●开发桌面应用程序:银行软件、商场结算软件。
●开发面向Internet的应用程序:网上数码商城、阿里巴巴、易趣网1.4 Java技术平台简介Java包括编程语言和相关的大量技术。
(1)JavaSE:JavaSE即Java平台标准版,是Java技术的核心,提供基础的Java开发工具,执行环境与应用程序接口(API),主要用于桌面程序的开发。
(2)JavaEE:JavaEE的全称是Java平台企业版,它主要用于网络程序和企业级应用的开发。
狂神说Java--Java学习笔记(基础合集)
狂神说Java--Java学习笔记(基础合集)笔记参考来源狂神说Java视频https:///video/BV12J41137hu 本篇笔记有点长,可以根据⽬录定位,建议配合视频学习。
预科什么是计算机1. 名称:Computer,全称电⼦计算机,俗称电脑。
2. 定义:能够按照程序运⾏,⾃动、⾼速处理海量数据的现代化智能电⼦设备。
3. 组成:由硬件和软件组成。
4. 形式:常见显⽰有台式计算机、笔记本计算机、⼤型计算机等。
5. 应⽤:科学计算、数据处理、⾃动控制、计算机辅助设计、⼈⼯智能、⽹络等领域。
硬件及冯诺依曼结构计算机硬件组成:CPU,主板,内存,电源,主机箱,硬盘,显卡,键盘、⿏标,显⽰器。
冯诺依曼结构软件及软件开发计算机软件Windows常⽤快捷键Alt+f4关闭窗⼝ Shift+Delete永久删除 ctrl+w⾃动保存死机:任务管理器结束进程基本的Dos命令打开CMD的⽅式1. 开始+系统+命令提⽰符2. win键+R+输⼊cmd (推荐使⽤)3. 在任意的⽂件夹下,按住Shift键+⿏标右击,打开命令⾏窗⼝4. 在资源管理器地址栏路径前⾯加 “cmd ”5. 管理员运⾏⽅式:命令提⽰符右键以管理员⾝份运⾏(最⾼权限运⾏)常⽤的Dos命令# 盘符切换 E:# 查看当前⽬录下所有⽂件 dir# 切换⽬录 cd /d E:\idea# 返回上⼀级⽬录 cd ..# 进⼊同级⽬录下的下⼀级⽬录 cd tmp(该⽬录下的⽂件名)# 清屏 cls (clear screen)# 退出终端 exit# 查看电脑当前IP地址 ipconfig# 打开计算器 calc# 打开画图 mspaint# 新建记事本 notepad# 在当前⽬录新建⽂件夹 md test(⽂件夹名)# 新建⽂件 cd> a.txt(⽂件名)# 删除⽂件 del a.txt(⽂件名)# 删除⽬录 rd test(⽬录名)# ping命令(复制链接进⼊Dos直接单击⿏标右键粘贴)ping 计算机语⾔发展史第⼀代语⾔:机器语⾔第⼆代语⾔:汇编语⾔第三代语⾔:⾼级语⾔⾼级语⾔C、C++、Java、C#、Python、PHP、JavaScript …⼤体上分为:⾯向过程与⾯向对象两⼤类C语⾔是典型的⾯向过程的语⾔,C++,Java是典型的⾯向对象的语⾔Java⼊门Java帝国的诞⽣Java特性与优势简单性⾯对对象可移植性⾼性能分布式多态性多线程安全性健壮性Java三⼤版本Write Once,Run AnywhereJavaSE: 标准版 (桌⾯程序,控制台开发…)JavaME: 嵌⼊式开发 (⼿机,⼩家电…),已经凉了JavaEE: E企业级开发 (Web端,服务端开发…),JavaSE为基础JDK JRE JVMJDK:Java Development Kit (Java开发者⼯具,包括 JRE,JVM)JRE:Java Runtime Environment (Java运⾏时环境)JVM:Java Virtual Machine (Java虚拟机,跨平台核⼼)安装开发环境卸载JDk1. 删除Java安装⽬录2. 删除环境变量JAVA_HOME3. 删除path下关于JAVA的⽬录4. Java -version安装JDK1. 百度搜索JDK8,找到下载地址2. 同意协议,下载电脑对应的版本,如64位操作系统下载 jdk-8u281-windows-x64.exe3. 双击安装JDK4. 记住安装路径5. 配置环境变量1. 我的电脑-》属性-》系统⾼级设置-》环境变量2. 系统变量新建–> JAVA_HOME 输⼊对应的jdk安装路径3. path变量–>% JAVA_HOME%\bin6. 测试是否成功 cmd–>Java -versionJava基础注释1. 单⾏注释 //2. 多⾏注释 /* */3. ⽂档注释 /** */标识符和关键字Java 所有的组成部分都需要名字。
Java学习笔记(必看经典).pdf
比较面向过程的思想和面向对象的思想: 面向过程的思想:由过程、步骤、函数组成,以过程为核心; 面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。 面向过程是先有算法,后有数据结构。 面向对象是先有数据结构,然后再有算法。
关系运算符:instanceof a instanceof Animal;(这个式子的结果是一个布尔表达式) a 为对象变量,Animal 是类名。 上面语句是判定 a 是否可以贴 Animal 标签。如果可以贴则返回 true,否则返回 false。
在上面的题目中: a instanceof Animal 返回 True, a instanceof Dog 也返回 True,
This 表示当前对象。
Public void printNum(){ Int number=40; System.out.println(this.number);
} 此时打印的是实例变量,而非局部变量,即定义在类中而非方法中的变量。
This.number 表示实例变量。 谁调用 this.number 那么谁即为当前(this)对象的 number 方法。
可以构造多个构造方法,但多个构造方法的参数表一定不同,参数顺序不同即属于不同的构造方法: public student(string name,int a){ } public student(int a,string name){ } 为两个不同的构造方法。 如果我们未给系统提供一个构造方法,那么系统会自动提供一个为空的构造方法。 练习:写一个类,定义一个对象,定义两个构造方法:一个有参,一个无参。 (编写一个程序验证对象的传递的值为地址) 注意下面这种形式: static void changename(student stu){stu.setName “LUCY”} 注意生成新的对象与旧对象指向无关,生成新对象生命消亡与旧对象无关。
廖雪峰Java教程学习笔记(一)——Java程序基础
廖雪峰Java教程学习笔记(⼀)——Java程序基础(⼀)Java程序基本结构Java是⾯向对象的语⾔,⼀个程序的基本单位就是class。
在class内部,可定义若⼲⽅法。
类名要求:类名必须以英⽂字母开头,后接字母,数字和下划线的组合习惯以⼤写字母开头⽅法名要求:⽅法名必须以英⽂字母开头,后接字母,数字和下划线的组合习惯以⼩写字母开头(⼆)变量和数据类型在Java中,变量分为基本类型的变量和引⽤类型的变量。
例如:int x = 1; //定义了⼀个整型int类型的变量,名为x,初始值为1变量的⼀个特点是可以重新赋值,也可以赋值给其他变量。
值得注意的是,在第⼀次定义变量时需要指定变量类型,⽽第⼆次重新赋值时,该变量已经存在了,不⽤再指定变量类型。
基本数据类型整数类型:byte, short, int, long浮点数类型:float, double字符类型:char布尔类型:boolean计算机内存的最⼩存储单元是字节(byte),⼀个字节就是⼀个8位⼆进制数,即8个bit,字节的⼆进制表⽰范围为00000000~11111111,换算成⼆进制是0~255,换算成⼗六进制是00~ff。
Java基本数据类型占⽤的字节数类型byte short int long float double char字节 1 2 4 8 4 8 2定义基本数据类型时的注意事项整型最⾼位的bit表⽰符号位(0表⽰正数,1表⽰负数)long型的结尾需要加L(int l = 9000000000000000000L;)float型的结尾需要加f(float f = 3.14f;)char类型使⽤单引号‘ ’,且仅有⼀个字符,字符串使⽤双引号“ ”引⽤类型常量:定义变量的时候,如果加上final修饰符,这个变量就变成了常量。
常量名通常全部⼤写var关键字:省略变量类型可使⽤var关键字(三)整数运算Java的整数运算遵循四则运算规则,可以使⽤任意嵌套的⼩括号。
JAVA笔记(根据马士兵的java视频整理)
JAVA视频教程尚学堂---手把手教程Call:86-主讲教师马士兵SCM系统--------Java+VC跨平台(电信宽带运营平台-------Java+WEB(J2EE)跨平台远程教学平台----Java+WEB(tomcat)VOD视频监控-----VCERP视频会议---------VC新闻发布系统-----Java+XML(模板)网上商城课堂内容、教学方法、学习方法、预备知识、教学资源JAVA基础贯穿数据结构的知识(时间复杂度、链表)---非常重要语法基础【变量、循环、分支】最核心的东西—原理--学好OO【面向对象是最重要的】有新东西学是好事----个人价值Exception 从Java Web开始,框架巨多无比Array【数组】基础类、常用类I/O StreamCollection/Generic【集合类】Thread【线程】TCP/UDP【网络底层】GUI【Graphic User Interface 图形化用户接口窗口】Meta Data【以后讲,与紧密相关】Regular Expression【正规表达式】JDK初步Java Web编程【主攻一个框架---讲原理,略讲其他框架】针对Web程序J2EE【一套标准,包含Java Web 、JDPC、JSP、SP、JB/开源框架—就分步式来说,目前(2005)无东西与之抗衡】(比较,,)企业级应用J2ME移动设备移动增值SP运营商3G,2.5G,要火爆起来【网络先铺起来,应用才能上来;3G的网络还没有铺开、火爆起来,讲3G的应用超前了】巨无霸式的教学理论举例理论回顾练习讲解【三片面包加两片肉】注重结合工程实践【完全结合】注重传授自学能力【自学的东西相当重要,授人以鱼,不如授人以渔;慢慢学会掌握一定基础后才有,灌输、背,融成血液里的一部分,心中无剑,手中有剑—前提—心中有剑手中也有剑;时间短,强度大,该背就背】个人能力分三个层次知识学习前人的知识---学习能力的一个表现,被动地接受—接受能力{自己学习了知识后考虑如何去应用,去---学习解决问题的方法【类似问题遇到过】灵活运用学到的知识【碰到什么问题采用什么方法】解决问题的思路【最高层次】创造解决问题的方法【思路掌握了,遇到新问题,自己拓展一条思路,解决问题,不可能一口吃成一个胖子,沿着这三个层次一点一点往上升首先打造自己学习知识的能力,先把该掌握的知识掌握了,再谈如何应用---如何教---教大家写项目每一个知识教太深—给项目留得时间特别短---不合适;自学一些东西,慢慢去培养解决问题的思路,试着朝这个方向去培养,工作后慢慢遇到新问题使劲去思考了积累起来逐渐会有这个能力,灵活一点、再灵活一点!基础知识要背—灵活应用的东西不能背,无一定之规,在实践中慢慢锻炼—实践的越多—敲的代码越多(掌握思路后自主敲代码,哪怕敲不出来再看别人的思路—收获远远不一样,学习要自主一点,多思考思路才能开阔—无捷径,努力锻炼自己的就业能力。
第一章-Java基础笔记
第⼀章-Java基础笔记Java语⾔的概述Java是⼀门⾯向对象的语⾔,Java相对于C语⾔来说学习相对简单,它主要的三⼤特点就是:封装、继承、多态,并且只需要进⾏⼀次源码编译,在任何装有对应版本的JVM 虚拟机环境的计算机下运⾏;Java的三个版本JavaSE主要⽤于桌⾯应⽤的开发JavaME主要⽤于嵌⼊式系统的开发JavaEE主要⽤于企业级的WEB端开发和服务器开发Java环境介绍JDK - 提供了开发者的⼀些⼯具包,并包含了[JRE和JVM]JRE - Java的运⾏环境,提供了运⾏时需要的类库,并包含了[JVM]JVM - Java的虚拟⼀块内存区域,⽤于执⾏Java的代码Java跨平台交互图Java代码的运⾏机制后缀点java的⽂件会通过 javac命令进⾏⽂件的编译成⼀个能够被JVM读懂的字节码⽂件,通过加载、校验、初始化的过程都内存中,通过JVM寄存器读取⽂件中的⾏号,进⾏执⾏相关代码;注释注释是为了在编写程序时对某个类、⽅法或是⼀段代码进⾏功能作⽤的说明,它不会被编译成代码执⾏,只是起到⼀个描述作⽤,便于对代码的理解;Java中的注释分为3种:单⾏注释://多⾏注释:/* */⽂档注释:/** */对注解的内容⽣成JavaDoc⽂档DOS命令进⼊到要⽣成Doc⽂档的层级⽬录,执⾏:javadoc -encoding UTF-8 -charset UTF-8 ⽂件名称/*** @Author JavaCat7* @Description 这是⼀个⽂档注释*/public class Demo{/*** @Parameter args 对参数的描述* @Description 这是⼀个⽂档注释*/public static void main(String[] args){//这是⼀个单⾏注释System.out.println("Hello Java");/*这是多⾏注释这是多⾏注释*/}}标识符每个⼈都有名字,⽽标识符是为了给代码中的类、接⼝、⽅法、变量取⼀个名字,但它们的明⽩是有着严格规范的;规范:每个⼈都有名字,⽽标识符是为了给代码中的类、接⼝、⽅法、变量取⼀个名字,但它们的明⽩是有着严格规范的;**规范:**1.严格区分⼤⼩写;2.开头可以是$ 或 _ 或 A-Z a-z的字母组成,也可以汉字(不会这么⼲);3.可以由数字、字母或者是 $ 或 _ 组成,但数字不能⽤于开始;4.不可以包含特殊字符;5.不能以Java语⾔中的保留字作为命名;6.类名采取⼤驼峰命名法;7.⽅法和变量采取⼩驼峰命名法;8.常量采取⼤学加_进⾏命名;基本数据类型Java是强类型计算机语⾔,所有的变量必须先定义才能使⽤,对于强类型⽽⾔主要就是指的数据安全,强类型的语⾔有很多,⽐如C、C++、python...计算机存储单位换算bit(位) - 是计算内部数据存储的最⼩单元,通过8个⼆进制位进⾏表⽰;byte(字节) - 是计算机中数据处理的基本单位,通常使⽤B来表⽰;8个bit(位) = 1B(字节)1024个B(字节) = 1KB1024个KB = 1MB1024个MB = 1GB....//整数类型byte a = 1;short b = 2;int c = 3;long d = 4L;//⼩数类型float e = 5.0f;duble f = 6.0d;//字符类型char g = 'a';//布尔类型boolean h = true;boolean i = false;数据类型的转换各数值相关数据类型⽀持类型上的转换,既可以把排序级别较低的类型转换成排序级别较⼤的类型,也可以把排序级别较⾼的类型转换成级别较低的类型(但会造成数据的丢失);数据的转换强制类型转换 - 在要转换的变量前使⽤:要转换的对应数据类型如- (int)⾃动类型转换 - 在不同的数值数据类型运算中,它会以排序级别较⾼的数据类型作为基础⾃动转换int number1 = 128;//正常byte的值是 -128 - 127,强制把int类型转换成byte会造成数据的不精确byte number2 = (byte)number1;int number3 = 519;float number4 = 1.0f;//在运算过程中因为float的排序级别⽐int⾼,那么它会⾃动转换成float类型在完成运算float number5 = number3 + number4;变量,静态变量,常量及作⽤域变量是指可以变化的值,通过数据类型和变量名可以在内存中申请⼀块存储的空间,通过内存的引⽤地址可以设置改变内存中存储的值或者修改值,所有的变量必须先赋值才可以使⽤;成员变量成员变量是指在类中与⽅法同级的位置中定义的成员变量,在该位置定义的变量可以不⽤设置值就可以使⽤,因为它会对类进⾏初始化,并完成初始化赋值,就算不给他们赋值也会有默认的初始值,他们的默认初始值都是最⼩的单元;作⽤域成员位置的变量,可以在⾮静态⽅法的所有位置使⽤,如果要在静态⽅法中使⽤,需要先创建对象;public class Variable{int a; //默认为:0float b; //默认为:0.0char c; //默认为:''boolean d; //默认为:false}局部变量局部变量是指在⽅法内部定义的变量,必须要先完成初始化后,才可以被使⽤;作⽤域局部位置的变量,外部⽆法使⽤,只能在⽅法内部使⽤,可以和外部的变量名称相同;public class Variable{int number;public void method(){int number = 3;//可以和成员位置的变量名称相同}}静态变量静态变量是指被static关键字修饰的变量,被修饰的变量⼜称为类变量;作⽤域静态变量可以作⽤域与所有⽅法中,静态变量只能定义在类的成员位置;public class Variable{static int number ;public static void main(String[] arags){System.out.println(number);}public void method(){System.out.println(numbe);}}常量常量是指不能被改变的值,它在创建到成员位置必须要先完成赋值,⼀旦被创建它的值是不允许被更改的;作⽤域它的作⽤域和成员变量相同public class Variable{final int NUMBER = 3.1415926;}静态常量静态常量是指从属于类的常量,在完成初始化以后是不可以被修改的,并且被public所进⾏修饰;作⽤域它的作⽤域和静态变量相同运算符算术运算符int a = 5;int b = 2;int number = a + b; //number = 7;int number = b - a; //number = 3;int number = a * b; //number = 10;int number = a / b; //number = 2,只取整数;double number = a / (double)b; //number = 2.5int number = a % b; //number = 1;⾃增⾃减运算符int a = 1;int b;b = a++; //b = 1; 先把a的值赋值给b,后a进⾏ +1 操作;b = a--; //b = 2; a前⾯进⾏了⾃增那么就是2,先把2赋值给b,然后进⾏ -1 操作;b = ++a; //b = 2; 前⾯a进⾏了⾃减那么就是1,先对a进⾏⾃增加1,然后在赋值给b;b = --a; //b = 1; 前⾯a是2,先对a进⾏⾃减1,在赋值给b;赋值运算符int a = 5;//把 5 赋值给 a;int b = 2;//把 2 赋值给 b;a += b; // a = 7(a+b的结果在赋值给a);a -= b; // a = 3;a *= b; // a = 10;a /= b; // a = 2;a %= b; // a = 1;关系运算符int a = 5;int b = 2;a > b; //truea < b; //falsea >= b; //falsea <= b; //truea == b; //falsea != b; //true逻辑运算符boolean a = true;boolean b = false;a &&b = false;//都true则true,第⼀个条件为false就不会在看第⼆个条件,直接返回falsea ||b = true;//⼀个条件为true则true,第⼀个条件为tre就不看第⼆个条件,直接返回true! a = false;//取反a &b = false;//2个条件都要执⾏a |b = true;三元运算符int a = 5;int b = 5;a ==b ? "等于":"不等于"; //为true返回第⼀个,为false返回第⼆个流程控制语句If语句if语句就是判断条件是否成⽴,成⽴就执⾏if中的代码,不成⽴就不进⼊;boolean flag = true;if(flag){System.out.println("...");}if...else语句if...else语句就是根据判断的条件是否成⽴,成⽴⾛if语句,不成⽴⾛else语句;boolean flag = true;if(flag){System.out.println("成⽴");}else{System.out.println("不成⽴");}if...else if语句if...else if⽀持多条件的判断,只会进⼊⼀个匹配的条件;boolean flag = true;boolean fail = false;if(flag){System.out.println("条件匹配");}else if(fail){System.out.println("条件匹配");}else{System.out.println("条件都不匹配");}switch条件控制语句witch语句从JDK1.7开始可以⽀持匹配:String字符串;注意事项:每个case 后⾯必须跟⼀个数值常量或字符串常量⽤于匹配;匹配的语句后⾯需要加上break关键字,防⽌case穿透;String week = "星期⼀";switch(week){case "星期⼀":System.out.println("今天是星期⼀");break;case "星期⼆":System.out.println("今天是星期⼆");break;case "星期三":System.out.println("今天是星期⼆");break;default:System.out.println("今天星期⼏都不是");}循环控制语句for循环语句for(初始值,条件表达式,更新)for(int i = 1 ; i <= 10 ; i++){System.out.println(i);}增强for循环for(接收类型的变量,表达式)int [] arrays = {1,2,3,4,5,6,7,8,9,10};for(int i : arrays){System.out.println(arrays);}while循环语句while(条件表达式)int number = 1;while(number <= 100){System.out.println(number);number ++;}do...while循环语句do{先把语句执⾏⼀遍}while(条件表达式);boolean flag = true;do{System.out.println("先执⾏⼀遍");flag = false;}while(flag);break和continue关键字break关键字结束循环的意思;for(int i = 1; i <= 100; i++){if(i == 10){System.out.println("打印10后结束循环");break;}}continue关键字跳过当前循环,进⼊下⼀次循环;for(int i = 1 ; i <= 10; i ++){if(i % 2 == 1){continue;}System.out.println("打印:"+i);}⽅法概述:⽅法就相当于使⽤多⾏代码进⾏组合去实现的⼀个功能⽚段,对代码进⾏封装利⽤,可实现多次调⽤;⽅法的定义修饰符返回值⽅法名称(形参形参名称){⽅法体}public class Function{public static void main(String[] arags){}public void method1(){}public void method2(String name,int age){}public static void method3(){}public int method03(){int a = 3;return a;}public int method04(int a,int b){if(a == b){System.out.println(a + "和" + b + "相等");return -1;}return a > b ? a : b;}}⽅法的重载⽅法的重载是指⽅法名称相同,传递的参数类型不同,个数不同,顺序不同与返回值⽆关;这样的⽅法被称为⽅法的重载;public class Function{public int max(int a,int b) {return a > b ? a : b;}public double max(double a,double b){return a > b ? a : b;}}形参和实参形参是指在()内部的参数,实参是指被真实传递的参数;public class Function{public static vid main(String[] args){Function function = new Function();function.max(3,5);}public int max(int a,int b) {return a > b ? a : b;}}可变参数在⽅法的()中我们有时候不知道要传递多少参数,那么我们可以传递⼀个数据类型紧跟后⾯加上...来表⽰;但需要注意的是⼀个⽅法中指允许⼀个可变参,如果有其他类型的参数,那么可变参数需要写在最后⾯;可变参数本质上就是⼀个数组;public class Function{public void method(String name,int... numbers){for(int num : numbers){System.out.println(num);}}}递归递归的本质就是⾃⼰调⽤⾃⼰,它可以解决⼀些业务,但效率和开销较⼤,对⼀些⽐较⼩的运算可以使⽤;//递归求3的阶乘public class Founction{public static void main(String[] args){}public int founction(int number){int result = 1;if(number == result){return result;}return number * founction(number - 1);}}数组数组就是⼀组数据的集合,Java中的数组必须存储和数据类型相符合的值,不允许与定义的数据类型不匹配;⼀旦数组被创建出来,它的长度就不允许被改变,数组有下标(索引)的概念,都是从0开始,如果操作的数据超过数组的长度那么就会报出下标索引越界异常[ IndexOutofBoundsException ];数组的定义int[] array = new int[3];int array[] = new int[3];int array[] = {1,2,3};数组的内存模型图数组的遍历⽅式int[] arr = new int[10];//⽅式⼀for (int i = 0; i < arr.length ; i ++) {System.out.println(arr[i]);}//⽅式⼆for (int num : arr) {System.out.println(num);}⼆维数组int[][] arr = new int[3][2];String[][] strArr = {{"hello","hello"},{"hi","hi","hi",{"java","java","java","java"}}Arrays⼯具类Arrays数组的⼯具类,是jdk已经帮我们提供好的⼀套数据⼯具类,⽅便我们对数据相关进⾏⼀些操作;int[] arr = {3,51,1,33,82,22,55,53};Arrays.toString(arr);//把数组变成⼀个字符串Arrays.sort(arr);//对数组内容进⾏升序排列Arrays.fill(arr,0);//把数组的内容全部进⾏替换为0常见算法冒泡排序public static int[] arr = new int[]{5, 2, 7, 4, 6, 9, 8, 13, 19, 11, 17, 15};//冒泡排序算法public static void popArithmetic(int[] arr) {//⽐较的轮数是数组长度-1for (int i = 0; i < arr.length - 1; i++) {//每次⽐较⼀轮,需要减少1次⽐较的次数for (int j = 0; j < arr.length - i - 1; j++) {//如果前⾯的数据⽐后⾯⼤,那么就交换位置if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}System.out.println("最终结果是:" + Arrays.toString(arr));}选择排序public static int[] arr = new int[]{5, 2, 7, 4, 6, 9, 8, 13, 19, 11, 17, 15};//选择排序public static void selectOrderArithmetic(int[] arr) {//⽐较的轮数是数组长度-1for (int i = 0; i < arr.length - 1; i++) {//每⽐较⼀次,需要减少1次⽐较的次数,会把⼩的先往前排for(int j = i+1;j<arr.length;j++){if(arr[i]>arr[j]){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}System.out.println("最终结果是:" + Arrays.toString(arr));}⼆分查找public static int[] arr = new int[]{1, 2, 3 , 4, 6, 7, 8, 13, 19};//2分查找法public static void branchFind(int [] arr,int number){int startNode = 0;int endNode = arr.length-1;int middle = 0;while (startNode <= endNode){//中间的指针由开始节点和结束节点计算得来middle = (startNode+endNode)/2;if(number == arr[middle]){System.out.println("找到了");break;}else if(number < arr[middle]){endNode=middle-1;System.out.println(number+"⼩于中间值,结束节点变更为中间节点-1"); }else if(number > arr[middle]){startNode = middle+1;System.out.println(number+"⼤于中间值,开始节点变更为中间节点+1"); }else{System.out.println("没有找到该元素");break;}}}。
(完整word版)Java学习笔记(必看经典)
诚信、创新、开放、合作JAVA的面向对象编程--------课堂笔记面向对象主要针对面向过程。
面向过程的基本单元是函数。
什么是对象:EVERYTHING IS OBJECT(万物皆对象)所有的事物都有两个方面:有什么(属性):用来描述对象。
能够做什么(方法):告诉外界对象有那些功能。
后者以前者为基础。
大的对象的属性也可以是一个对象。
为什么要使用面向对象:首先,面向对象符合人类看待事物的一般规律。
对象的方法的实现细节是屏蔽的,只有对象方法的实现者了解细节。
方法的定义非常重要。
方法有参数,也可能有返回值。
注意区分:对象(本身)、对象的实现者、对象的调用者。
分析对象主要从方法开始。
我们通过类来看待对象,类是对象的抽象。
其次,采用面向对象方法可以使系统各部分各司其职、各尽所能。
对象之间的耦合性一定要低(比如不同硬盘和不同主板之间的关系)。
这样才能使每个对象本身做成最好的。
对于对象的要求:高内聚、低耦合,这样容易拼装成为一个系统。
实现高内聚就是要最大限度低提高复用性(复用性好是因为高内聚)。
可复用性是OOP的基础。
比较面向过程的思想和面向对象的思想:面向过程的思想:由过程、步骤、函数组成,以过程为核心;面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。
面向过程是先有算法,后有数据结构。
面向对象是先有数据结构,然后再有算法。
在用面向对象思想开发的过程中,可以复用对象就进行复用,如无法进行复用则开发新的对象。
开发过程是用对个简单的对象的多个简单的方法,来实现复杂的功能。
从语法上来看,一个类是一个新的数据类型。
在面向对象编程中,除了简单数据类型,就是对象类型。
定义类的格式:class Student{代码}注意类名中单词的首字母大写。
实例变量:定义在类中但在任何方法之外。
(New出来的均有初值)局部变量:定义在方法之中的变量。
局部变量要先赋值,再进行运算,而实例变量均已经赋初值。
这是局部变量和实例变量的一大区别。
狂神说Java笔记-Java入门
狂神说Java笔记-Java⼊门Java⼊门狂神说Java笔记,Java三⼤版本JavaSE:标准版,基础,初学者主要学习并应⽤这⼀部分。
主要⽤来开发桌⾯程序(⼩游戏)和控制台开发JavaME:嵌⼊式开发,⽤于⼿机和⼩家电,已经不⾏了JavaEE: Java企业版,最⼴泛的应⽤,⽤于web端和服务器开发,JavaSE是JavaEE的基础JDK、JRE和JVMJDK:Java Development Kit,Java开发⼯具,包含JREJRE: Java Runtime Environment,Java运⾏时环境,包含JVMJVM:Java Virtual Machine,Java虚拟机,Java跨平台的核⼼,屏蔽了不同系统的底层环境Hello World 使⽤终端输出Hello World!1. 打开终端后,转到⽬标⽬录下。
cd + 路径,OS系统可以在输⼊"cd "后直接拖拽⽬标⽂件夹到终端窗⼝2. 新建.java⽂件:vi hello.java3. 编写代码public class hello{//class名要和⽂件名⼀致//class名最好⾸字母⼤写public static void main(String[] args){System.out.print("Hello, World!");}}4. 编译.java⽂件,⽣成class⽂件:javac hello.java(必须写.java后缀)5. 运⾏class⽂件:java hello(不写后缀)可能出现的问题1. 单词⼤⼩写不⼀致,java是⼤⼩写敏感的2. 输出中⽂时可能会出错3. ⽂件名和类名不⼀致4. 符号使⽤了中⽂5. 环境配置不对编译型和解释型编译型:把源代码全部编译成⼆进制代码可执⾏的程序,然后直接运⾏这个程序解释型:源代码翻译⼀句,执⾏⼀句,直到结束 Java既有编译型的特征,也有解释型的特征:Java代码需要先编译,不进⾏编译⽆法运⾏Java代码编译后⽆法直接运⾏,需要在JVM上解释运⾏IDEA IDE:Integrated Development Environment 集成开发环境,⽤于提供程序开发环境的应⽤程序。
Java基础笔记狂神说版
Java基础笔记狂神说版Java基础学习笔记(狂神说版)三、Java⽅法(⼀)⽅法的重载1. 重载的概念:重载就是在⼀个类中,有相同的函数名称,形参不同的函数。
2. ⽅法重载的规则:(1)⽅法名必须相同(2)参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)(3)⽅法的返回类型可以相同,也可以不同(4)仅仅返回类型不同不⾜以成为⽅法的重载3. 实现理论:⽅法名称相同时,编译器会根据调⽤⽅法的参数个数,参数类型去逐个匹配,以选择对应的⽅法,如果匹配失败,则编译器报错(⼆)⽅法的可变参数可变参数(不定项参数):JDK1.5开始,Java⽀持传递同类型的可变参数给⼀个⽅法在⽅法声明中,在指定参数类型中加⼀个省略号(...)⼀个⽅法中只能指定⼀个可变参数,他必须是⽅法的最后⼀个参数,普通参数声明必须在其之前(三)⽅法的递归递归就是:A⽅法调⽤A⽅法!就是⾃⼰调⽤⾃⼰递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,⼤⼤减少了程序的代码量。
递归的能⼒在于⽤有限的语句定义对的⽆限集合。
递归结构包括两个部分:(1)递归头:什么时候不调⽤⾃⾝⽅法。
如果没有头,将陷⼊死循环。
(2)递归体:什么时候需要调⽤⾃⾝⽅法。
四、Java数组(⼀)数组的概念数组的定义:数组是相同类型数据的有序集合。
数组描述的是相同类型的若⼲个数据,按照⼀定的先后次序排列组合⽽成。
其中,每⼀个数据称作⼀个数组元素,每个数组元素可以通过⼀个下标来访问他们。
数组的四个基本特点:(1)其长度是确定的。
数组⼀旦被创建,它的⼤⼩就是不可以被改变的。
(2)其元素必须是相同类型,不允许出现混合类型。
(3)数组中的元素可以是任何数据类型,包括基本类型和引⽤类型。
(4)数组变量属引⽤类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。
数组本⾝就是对象,Java中对象是在堆中的,因此数组⽆论保存原始类型还是其他对象类型,数组对象本⾝是在堆中的。
java学习笔记(5)控制语句、键盘输入
java学习笔记(5)控制语句、键盘输⼊控制语句:java控制可以分为7种:*控制选择结构语句: *if if else *switch*控制循环结构语句: *for *while *do while*改变控制语句顺序: *break *continueif控制语句:/*关于java语⾔当中的if语句,属于选择结构,if语句⼜被称为分⽀语句/条件控制语句;1、if语句的运发结构:包含4中编写⽅式第⼀种:if(布尔表达式){java语句;...};第⼆种:if(布尔表达式){java语句;...}else{java语句;...}第三种:if(布尔表达式){java语句;...}else if(布尔表达式){java语句;...}...第四种:if(布尔表达式){java语句;...}else if(布尔表达式){java语句;...}else{java语句;...}重点:只要有⼀个if分⽀执⾏,整个if语句结束;注意:所有控制语句都是可以互相嵌套的。
注意:嵌套使⽤的时候,代码格式要保证完美。
注意:if语句中,只有⼀条java语句的话,⼤括号可以省略;if(true/false){java语句;}if(true/false) java语句;//但是不推荐使⽤,这种代码风格不好。
不容易看清。
*/public class ifTest01{public static void main(String[] args){// 需求,所在位置的5公⾥范围内有肯德基的话,去KFC吃午饭。
// 公⾥数double distance = 6.0;//单位KM// 判断语句if(distance<=5){System.out.println("⾛着去KFC吃午饭");}else if(distance<=7.0&&distance>5){System.out.println("跑着去KFC吃午饭");}else{System.out.println("在附近吃别的");}}}接收⽤户键盘输⼊:/*System.out.println() 负责向控制台输出,【从内存到控制台,输出的过程,这是从内存中出来了】接收⽤户键盘输⼊,从"键盘"到"内存"。
java学习笔记第四章面向对象(上)
第四章:面向对象(上) (2)1.面向对象和面向过程 (2)2.面向对象的特点 (2)3.类和对象 (2)4.成员变量与局部变量的区别 (2)5.匿名对象的使用 (3)6.封装 (3)7.private(私有) (3)8.构造方法 (4)9.this关键字 (4)10.this的作用 (4)11.创建对象在内存中的详细步骤 (6)12.static(静态)特点 (7)13.方法区 (7)14.静态的使用 (8)15.单例设计模式应用 (9)16.final关键字 (11)17.final和private区别 (11)第四章:面向对象(上)1.面向对象和面向过程334157810这群每日java技术分享教程和定期资料更新(1)面向过程强调过程,执行者:它是一种更符合人们思考习惯的思想;(2)面向对象强调对象,指挥者:它使复杂的内容简单化;(3)面向对象思想的特点:它使我们从执行者变成了指挥;2.面向对象的特点封装;继承;多态3.类和对象(1)类对现实世界中同一类事物的描述(成员变量和方法);(2)对象现实世界中实际存在具体的个体;4.成员变量与局部变量的区别1.作用域:成员变量的作用域是整个类中都可以访问;局部变量是的作用域是定义它的{}内,{}中的语句执行完它就被回收;2.初始值:局部变量使用前必须手动赋值,系统不会赋默认值;成员变量系统会赋默认初始值.3.所在内存区域:局部变量在方法运行的栈内存里,在栈里,会自动释放;成员变量在对象里,对象在堆里,成员变量也在堆里,不使用的对象会被垃圾回收机制在不确定的时候回收.334157810这群每日java技术分享教程和定期资料更新5.匿名对象的使用(1)当对对象中的功能只执行一次的时候使用。
(2)用于作为实际参数进行传递。
(3)可以用匿名对象调用属性,没意义.6.封装(1)封装的好处:便于重复使用,安全性高。
(2)private(私有的)权限修饰符。
7.private(私有)334157810这群每日java技术分享教程和定期资料更新private修饰成员变量和成员不能在其他类中直接访问.注意:私有仅仅是封装的一种体现形式,封装是一种思想,就是将具体实现隐藏,仅对外暴露访问方式.8.构造方法(1)用途:用于给对象中属性进行初始化。
JAVA学习(一)——基本语法
JAVA学习(⼀)——基本语法 tips:前端开发写惯了弱类型语⾔,再来学强类型语⾔,真的是被各种修饰符、类型声明给整的云⾥雾⾥,⽽且java语法和javascript语⾔差别还是很⼤的,所以做好笔记,把⼀些需要注意的地⽅记下来是⾮常重要的,接下来就开始学习java啦。
⼀、基本语法: 1、⼤⼩写敏感:Java是⼤⼩写敏感的,这就意味着标识符Hello与hello是不同的。
2、类名:对于所有的类来说,类名的⾸字母应该⼤写。
如果类名由若⼲单词组成,那么每个单词的⾸字母应该⼤写,例如 MyFirstJavaClass 。
3、⽅法名:所有的⽅法名都应该以⼩写字母开头。
如果⽅法名含有若⼲单词,则后⾯的每个单词⾸字母⼤写。
4、源⽂件名:源⽂件名必须和类名相同。
当保存⽂件的时候,你应该使⽤类名作为⽂件名保存(切记Java是⼤⼩写敏感的),⽂件名的后缀为.java。
(如果⽂件名和类名不相同则会导致编译错误)。
5、主⽅法⼊⼝:所有的Java 程序由public static void main(String args[])⽅法开始执⾏。
备注⼀下: 5.1、public static void main(String args[]){}:为java主函数,java虚拟机会⾃动寻找到main⽅法,然后开始执⾏后⾯的程序,java程序的规定的格式写法; 5.2、public:可外部访问; 5.3、static:标记为静态函数,将该函数存储在静态存储区,不需要实例化(new)即可使⽤; 5.4、void:⽆返回值; 5.5、String args[]:可在命令⾏通过此参数给函数传值,可在其他类调⽤这个类的main函数时传值。
public class MyFirstJavaProgram {/* 第⼀个Java程序.* 它将打印字符串 Hello World*/public static void main(String []args) {System.out.println("Hello World"); // 打印 Hello World}} ⼆、类(class) 1、局部变量 2、成员变量:定义在类中,⽅法体之外的变量,和局部变量略有不同。
韩顺平java全部内容笔记
韩顺平java全部内容笔记韩顺平是一位伟大的计算机科学家,他的Java全部内容笔记,是学习Java的非常好的资料。
该笔记共有近1000页,内容全面详细,涵盖了Java的各个方面,以下是简单介绍:第一部分:Java基础1. Java入门:简介、JDK、Java开发环境的搭建、Hello World程序等。
2. 变量与常量:Java的数据类型、变量的定义与使用、常量的定义与使用等。
3. 运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符等。
4. 控制流程:if语句、switch语句、for循环、while循环、do-while循环等。
5. 数组:一维数组、二维数组、数组排序、数组查找等。
6. 方法:方法的定义与使用、传递参数、返回值等。
7. 面向对象:面向对象的基本概念、类的定义与使用、封装、继承、多态等。
8. 类与对象:类与对象的关系、构造方法、对象成员变量、对象的引用等。
9. 抽象类与接口:抽象类的定义与使用、抽象类与普通类的区别、接口的定义与使用、接口的实现等。
10. 异常处理:异常的概念、异常的分类、异常处理的机制、自定义异常等。
11. 泛型:泛型的定义与使用、泛型类、泛型方法、泛型限定等。
12. 多线程:线程的概念、线程的创建与启动、线程的生命周期、线程的同步、线程通信等。
13. 反射:反射的概念、反射的使用、反射的用途、动态代理等。
14. 注解:注解的概念、注解的使用、自定义注解等。
15. 枚举:枚举的概念、枚举的使用、枚举的用途等。
16. IO流:IO流的基本概念、字节流、字符流、文件读写、序列化等。
17. 网络编程:网络编程的基本概念、Socket编程、服务器与客户端、TCP/UDP等。
18. 数据库编程:数据库的基本概念、JDBC编程、SQL语句、事务等。
19. 集合框架:集合框架的基本概念、ArrayList、LinkedList、HashSet、HashMap 等。
20. JavaWeb编程:Servlet编程、JSP编程、Struts框架、Spring框架、Hibernate 框架等。
java语言学习笔记
第一章1. java程序共分为两种:应用程序(application独立运行)和小应用程序(applet:嵌在网页中运行)。
第二章1.Java语言只含有两种数据类型字符(char)与短整形(short)之间没有强弱关系。
弱的数值类型可以直接转为强的数据类型。
强的数据类型要转换为弱的数值类型需强制转换。
Java一般不直接比较两个浮点数是否相等或不相等。
2.‘\u0061’, ‘\u0051’ 和‘\u005a’ 是char直接量.3. 字符(char)直接量(常用的转义字符)'\b' (退格)•'\f' (换页)•'\n' (换行)•'\r' (回车)•'\t' (水平制表符(到下一个tab位置))•'\' ' (单引号)•'\" ' (双引号)•'\\' (反斜杠)4. %:取模:返回余数,余数符号与被除数一致。
5.短路规则( &&和|| ):如果从第一个操作数可以推断出表达式结果,就不再计算第二个操作数;逻辑运算(&和| ):不采用短路规则第三章:面向对象程序设计1.对象(objects): 类的实例对象或类本身2.J_Circle c = new J_Circle(50,50,40);变量”c”获得该实例的引用。
3.构造方法:主要用来创建类的实例。
特点:1.方法名必须与类名相同;2.在声明时不能写上返回任何类型。
任何一个类都会有构造方法。
如果未显示地定义类的构造方法,则系统会为该类定义一个默认的构造方法:不含有任何参数,作用是将类中的成员域初始化。
4.三个基本特性:封装性、继承性和多态性4.1.1:java语言规定:任何一个子类的构造方法都必须调用父类的构造方法,而且调用父类的构造方法的语句必须在子类构造方法的第一语句,其格式为:super(参数);4.1.2:子类实例的引用可以直接赋给父类类型的引用变量。
Java达内学习笔记3
内存分类:栈内存、堆内存、寄存器、方法构造(代码段)、池内存栈内存:地址、基本内存的值(栈内存很小,不放对象)堆内存:对象、地址、基本内存的值、寄存器:运算的中间值代码段:如构造方法等的代码池内存:长放在内存里面的东西放在池内存里面(常驻内存)Staff staff = new Staff () ;执行次序:①Staff staff现在栈里面图1-1public class Test {public static void main(String[] args) {Staff staff = new Staff();staff.id="007";="詹姆斯.邦德";staff.salary=10000.0F;staff.faSalary();}}public class Staff {String id;String name;float salary;public void faSalary(){System.out.println(salary);}}编译:javac -d . Hello.java运行:Java com.tenara.Helloimport语句可以导入不同包的class文虚拟机先找栈,通过栈找到堆!垃圾回收机制回收的主要是堆内存里面的东西。
GC是怎么判断堆内存里面的东西已经成为垃圾可以被回收了?GC是从栈找到堆,如果堆里面的内容在栈里面没有对应的地址变元,则被视为垃圾清理掉!import java.util.Scanner; //扫描键盘public class Test2 {public static void main(String [] args){Scanner sc = new Scanner(System.in);//扫描字符串String str=sc.next();System.out.println("输入了"+str);//扫描整数int aa=sc.nextInt();System.out.println("输入了"+aa);//扫描doubledouble dd=sc.nextDouble();System.out.println("输入了"+dd);}}Operators1、"( )"优先级高2、"="优先级低Assignment operators= += -= %= *= /= <<= >>= >>>=&= ^= |=public class Test6 {public static void main(String [] arsg){byte b1=2;byte b2=3;b1=(byte)(b1+b2); // 语句1 加法,转intb1+=b2; //语句2 赋值,不转int}}b1+=b2;是否和语句b1=b1+b2完全等价?答案是否定的,上面程序中的语句1和语句2给出了证明。
java guide 自己的笔记
java guide 自己的笔记这只是一个基本的大纲,涵盖了Java编程的一些核心概念。
**Java编程指南笔记****1. 基础语法*** **变量与数据类型**: 基本的数据类型(如int, double, char等)和变量的声明与初始化。
* **运算符**: 基本的算术运算符(如+,-,*,/),比较运算符和逻辑运算符。
* **控制结构**: if-else语句,switch语句,循环(for,while)。
* **函数/方法**: 函数的定义,参数传递(按值传递和按引用传递),返回值。
**2. 面向对象编程*** **类与对象**: 类的定义,对象的创建。
* **封装**: 属性和方法的封装。
* **继承**: 类的继承,继承的方法和属性。
* **多态**: 方法的重载和方法的重写。
* **抽象类与接口**: 抽象类的定义,接口的定义和实现。
**3. 异常处理*** **异常的分类**: Checked异常和Unchecked异常。
* **try-catch块**: 异常的捕获和处理。
* **finally块**: 无论是否发生异常都会执行的代码块。
* **throw与throws关键字**: 抛出异常和声明可能抛出的异常。
**4. 集合框架*** **数组**: 数组的定义与使用。
* **List, Set, Map**: 常用集合接口及其实现类(如ArrayList, HashSet, HashMap)。
* **泛型**: 集合中的元素可以有相同的类型。
* **迭代器**: 遍历集合的方法。
**5. 多线程编程*** **线程的生命周期**: 新建线程,启动线程,等待线程,唤醒线程,终止线程。
* **线程同步**: 防止多个线程同时访问某一共享资源造成的数据不一致。
* **线程间通信**: 使用wait()和notify()方法实现线程间通信。
**6. 网络编程*** **Socket编程**: 建立Socket连接,发送和接收数据。
java从入门到精通读书笔记(一)
java从入门到精通读书笔记(一)Java从入门到精通笔记入门篇•熟悉Java发展历史•安装JDK、Eclipse•编写Hello World程序•了解Java基本语法•掌握变量、数据类型、运算符、控制语句面向对象编程•了解面向对象的特点•掌握类和对象的概念•学习继承、封装、多态等基本概念•实现类的定义和对象的创建•学习重载和重写集合和IO•学习Java中的容器类•掌握ArrayList、HashSet、HashMap等集合的使用•熟悉Java中的IO操作•了解文件操作、序列化等内容网络编程•掌握socket通信•理解TCP/IP协议•学习HTTP协议•实现客户端和服务器高级Java特性•学习反射、注解等高级特性•掌握多线程编程•熟悉JVM架构•学习异常处理JavaWeb编程•掌握Servlet、JSP等技术•学习MVC框架•熟悉Web应用服务器•学习数据库编程总结•学习Java需要不断积累•遇到问题可以通过搜索引擎解决•不断实践,多写代码•持续学习新技术,保持竞争力入门篇Java语言是面向对象的编程语言,是一种广泛使用的计算机编程语言。
Java语言从1996年开始被发布,现在已被广泛应用于客户端和服务器端程序的开发。
在学习Java之前,需要先了解Java的发展历史。
安装JDK、EclipseJava的开发需要安装JDK和Eclipse。
JDK是Java开发工具包,其中包含了Java编译器等工具。
Eclipse是一款常用的Java IDE(集成开发环境),可以用于编写,调试和运行Java代码。
编写Hello World程序在学习Java语言之前,需要先学会编写Hello World程序,这是一个非常简单的程序,可以帮助初学者快速上手Java编程。
public class HelloWorld {public static void main(String[] args){System.out.println("Hello World!");}}了解Java基本语法Java是一种强类型的语言,需要对数据类型进行明确的定义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JDK :可以开发编译与运行JAVA程序的工具。
JRE:可以运行JAVA程序的工具。
JVM:java虚拟机,是在一台计算机上山硬件或软件模拟的计算机。
它的功能是读取并处理编译过的字节玛文件(class文件)环境变量:path:JDK 中bin 目录classpath:.java_home:JDK 的路径homc_path: JDK 的路径开始一>Sitj->cnid->java -versionJavaSE—Oraclc 今JavaEEJava版木:JavaSE:J2SEJavaEE:J2EEJavaME:J2MEJAVA文件类型:.java文件:源文件,保存JAVA源代码,文本文件。
.class文件:类文件,保存字节码,二进制文件。
使用javac命令将java文件编译为class文件:javac文件名.java (DOS文件名不区分大小写)使用java命令运行class文件:java类名(类名区分大小写)1.在一个JAVA文件中可以有多个类2.在个JAVA文件中只能有一个公有(public)的类3.公有的类的名字必须与文件名-样(包括大小写)4.JAVA代码区分大小写5.niain()是程序的入口6.通常情况下main()应该放在公有的类中7.每句代码后面用分号表示结束8.不允许在代码中直接书写中文的标点注释:1.单行注释:〃2.多行注释:/*注释内容*/3.文档注释第三章数据类型:有两种。
基本数据类型(简单数据类型),引用数据类型。
基本数据类型:有8种数字类型:整型,浮点型1.整型:表示十进制,八进制(0开头),十六进制(用Ox或0X头),在JAVA中没有无符号的数字a)byte:字节类型,1个字节-27—27-1b)short:短整型,2 个字节-215—215-10 int:整型,4个字节在JAVA中整数默认为讪,-231—231-1d) long:长整型,8个字节,-263—263.1,在数字后加1或L2.浮点型:a)Ooat:单精度,在数字后面加F或仁4个字节b)double:双精度,在JAVA中-个浮点型的数字默认为double类型。
8个字节3.字符类型:char,字符类型的值要放在一•对单引号中,单引号中必须只有一个字符(一个字母,数字,\u0000')。
在JAVA中所有的字符都占两个字节]4.boolean类型:值true ( }'(■)或false(假)。
boolean类型的值不能与其它类型进行转换。
变量:强类型的语言。
1.格式:数据类型变量名;2.JAVA中标识符命名的规则:a)标识符由字母,下划线,数字,美元符($)组成。
b)不能用数字开头。
c)不能使用关键字(在JAVA中关键字都为小写)。
注意:当变量没有赋值时不能使用。
常最:只能赋值-•次的变量。
使用final关键字。
运算符:1.算木运算符:+,-,*,/,% (取余数),++ (自增),--(白减)。
JAVA中混合运算的结果的类型,根据运算元素的精度与长度决定。
2.关系运算符: >、>=,<,<=,=(判断是否相等),!=(不等于),结果一定是boolean类型。
3.赋值运算符:=,将右边值(结果)赋给左边的变量。
4.字符串连接符:+5.逻殂运算符:逻辑与(&),逻辑或(I),短路与(&&,当第一个表达式为false时,不执行第二个表达式),短路或(II,当第一个表达式为true时,不执行第二个表达式),逻辑非(!)6.扩展运算符:+二,-=,*=,/=,%=,可以将结果的类型自动转换为接收的类型7.三目运算符(三元运算符):x?y:z°当x为【rue时,返回y的值,当x为false时,返回z的值。
基本数据类型的类型转换:1.小的可以直接赋给大的。
2.大的必须强转才能赋给小的。
3.boolean不能转换为其它类型。
4.byte,short,char进行算术时结果会自动转换为int流程控制:顺序结构,选择结构,循环结构一.选择结构if语句格式:if(条件){代码;)if(条件){代码;)else(代码;)if(条件){代码;)else if(条件){代码;)c1scif(条件){代码;)else(代码;)1.if语句中的条件的结果必须为boolean类型的值2.if语句的大括号可以省略,但省略后if的作用范围只在if后面的一行代码。
3.一个if语句中可以出现0个或1个else4.else语句必须出现在if语句的最后5.一个if语句中可以出现0个或多个else if6.当匹配分支后,其它分支将不再执行。
switch语句:switch语句只能判断是否相等。
switch(变量){case 值:代码;[break;]case 值:代码;[break:]default:代码;[break;])1.switch 语句中变揪的类型必须为int,byte,short,char,枚举(JDK 1.5),String(JDK 1.7)2.case后面的值不能至复3.case后面只能放常量或字面值4.当switch匹配-•个分支后,将从这个分支开始执行后面所有的分支直接switch语句的结束,或遇到第一个break为止。
5.switch语句会先执行所有的case语句,当所有的case语句都没I兀配到时,执行default6.default语句不一定出现在switch语句的最后switch中没有break时是什么情况循环结构:while循环:当循环次数不确定时使用while循环while(条件)(〃条件为布尔类型循环体;)先判断,再循环Math.randomO:随机数方法,返回一个大于或等于0但一定小于1的double类型的值do...while 循环:do{循环体;)while(条件)先循环,再判断array [0]:10 array:引用for 循环:当确定循环次数时使用for 循环。
for 循环中三部分都可以省略。
for (循环变量初始化:循环条件;循环变量自增/自减){循环体;break:必须放在switch 语句或循环语句中。
放在循环中的作用:结束所在循环。
带标签的break :结束标签后面的循环。
continue:只能出现在循环语句中。
结束木次循环,使用循环直接进入下一次循环。
带标签的continue :使标签后面的循环结束本次循环,直接进入下一■次循环。
数组:多个相同数据类型的集合。
在JAVA 中所有的数组都是引用数据类型,但数组中每个元素可以为基本数据类型一雄数组:声明数组:不能写数组的长度数据类型[]数组名;数据类型数组名[]:inl[10] a;〃错误。
创建数组:必须指定数组的长度。
当确定了数组的长度后,数组的长度便不能修改。
数组的长度可 以为0,但不能为负数。
inl[] anay = (1,2,3,4,5,6,7,8,9}; java 习惯int array! [] = new int[10]; c 习惯 inl[] array2 = new int[]{ 123,4,5};array[ 1]:22array[2]:31访问数组的元素:通过下标可以访问数组的元素。
在JAVA中数组的下标从。
开始数组名[下标],数组中最大的下标为数组的长度减1数组与循环for each循环:遍历集合。
JDK 1.5以后;I网。
for(数据类型变量:集合名)(代码;)命令行参数:java类名命令行参数,命令行参数以空格作为分隔符。
山main。
中的SEng[]接收二维数组:声明数组:数据类型[][]数组名;数据类型数组名[][];数据类型[]数组名[];创建数组:array ={{ 1,3,5},{2,4,6},{7,8,9}};int anayl[][] = new int[3][3];//在创建多雄数组时,高雄不能省略,低维可以省略如:int anayl [][] = new int[3][3];第四章类与对象1.成员变量(全局变量,字段,属性,域):描述类的特征。
在类中声明的变量。
在类中都可用。
成员变量有默认值(byte.shortjnt默认值为O.long默认值为OL.double默认值为:OQfloal默认为O.OEboolean默认为false,char默认为M0000•,引用数据类型默认为null).2.局部变量:方法中声明的变量,只在方法中可用。
局部变量没有默认值.4.在一个类中想调用另一个类的成员(成员变量与成员方法),必须声明并创建这个类的对象,通过类的对象调用类的成员。
格式为:对象名.成员。
5.成员方法(成员函数):描述类的行为(动作)。
6.方法声明的基本格式:访问权限返回类型方法名([参数]){方法体;}当方法没有返回类型时,用void表示,可以使用return但不能返回数据return的功能:I .返回数据;2.结束方法方法的重载:一个类有多个名字相同但参数不同(个数不同,类型不同,顺序不同)的方法。
子类能重载父类的方法构造方法(构造函数,构造器):1.方法名与类名相同。
2.构造方法一定没有返回值,并且不能写void3.类一定有构造方法。
带格式的:编号+级别:1 +编号粹式:1, 2, 3,… +起始编号:1 +对齐方 式:左侧+对齐位置:0 磅+制表符后于:18磅 +缩进位置:18磅 4. 当没有在类中显式的写构造方法时,JVM 会自动为类添加一个默认的构造方法。
5. 默认构造方法:没有参数,没有方法体public 方法名(){ }6. 构造方法无法任意调用。
只有new 时才能调用类的构造方法。
new 构造方法().7. 构造方法的功能:为类的成员变量初始化。
8. 当在类中显式的写了构造方法,JVM 就不会为类添加默认的构造方法。
this 关键字:在类中调用自身的成员。
static X®?-: JU static 修饰的成员可以使用类的对象调用,也可以使用类名(接口名)调用。
I. 修饰成员变量:静态变量。
静态变量对于类的对象而言是共用份的。
2. 修饰成员方法:静态方法。
挣态方法只能直接调用静态的成员(成员变量,成员方法九不能使 用this 与super 关键字°final 修饰的成员变量如何初始化:1. 在声明final 类型的成员变量时,直接为这个变量初始化。
2. 如果没有在声明时为final 的成员变量初始化,就需要在这个类的所宥的构造方法中为这些final 的成员变量初始化(保证类的对象在构造完成前,这些final 的成员变量需要被初始化).包:本质就是文件央。
包主要的作用解决类的重名问题。
1. 当类出现在 个包中时,类的第 行必须是packa 呢语句,说明类存在于哪个包下。