【Java基础】实训第一天

2022.5.3

.class文件是给JVM运行的

bin的javac.exe来编译.Java文件成.class文件

Java.exe将.class文件运行(JVM中)

Jdk包含jre,jre包含jvm虚拟机

src和bin的区别:

开发好的源文件到.class(即编译后文件)在bin目录下面,src放源文件

修改文件编码,Preference搜索Workspace:UTF-8 gbk.......。。。

快捷键:

ctrl+d:删除光标所在行

Ctrl+alt+上或下:快速复制

Alt+shift+r:重命名

Alt+shift+a:开启、取消多行编辑

F11:快速运行

【面试题】Final修饰的常量是不能修改指向还是不能修改内容?

不能修改指向但是可以修改内容

 

 final修饰的变量其实就是相当于定义了一个变量,无法修改的变量

如果final修饰的是一个引用变量,那么该变量在栈内存存的是一个内存地址,改地址就不能改变,但是该内存地址所指向的那个对象还是可以变的。

成员变量默认是有初始值的

【面试题】char能否存汉字?可以的,但是有些没有录入到unicode表的特殊汉字是不行的

八大基本类型:byte[-128,127] short int long float double char boolean

数据类型转换:

  1. 隐式转换(自动):范围小的赋给范围大的

例如:byte xx =1;int yy = xx;xx = yy//程序报错,因为int范围更大,无法进行隐式转换,进行强制转换,xx = (byte)yy;

  1. 强制转换(手动):范围大的赋给范围小的,有可能会溢出(循环)

例如:byte xx =1;int yy = 128;xx = yy,输出:-128,溢出1,循环到-128,因为范围是【-128,127】

  1. 数据类型的自动提升

①字面整数默认的类型是int

②byte short char int 直接的运算结果类型都是Int

③操作数相互运算结构类型为范围较大的

例如:byte a=1;byte b = a+1;//程序报错,因为a+1都是直接默认为int,所以可以int b = a+1

Int e = 1;Long h = 1L;int i = e+h;//程序报错,因为③,类型long范围更大,所以int long = e+h

【面试题】float和long分别占用多少字节?请问float表示范围大还是Long?

原因:储存方式不一样,

Float类型:单精度。在内存中占用4个字节,共32位(bit)。它的取值范围按常理应该是 -2^32~2^32-1

long类型:长整型。在内存占用8个字节,共64位(bit)。它的取值范围为 -2^64~2^64-1

很明显应该是long整型比float整型的取值范围更大。但是浮点数的取值范围并不是这么表示的。

  V=(-1)^E * N * 2^M

数据转换问题:Byte data = 1;

Data = data+1;//报错,数据类型

Data+=1;//不报错,因为编译器做了优化会进行强转,注意数据溢出问题,变成了data = (byte)(data+1)

【面试题】int 和Integer有什么区别?

Java是面向对象的编程语言,为了编程方便引入了基本数据类型,但是为了能够这些数据类型当做对象操作,引入了对应的包装类型,Int的包装类就是Integer,从Java5开始引入了自动装箱/拆箱集中,使得两者互相转换

结果:Flase true

A==b?比较的是是否引用同一个对象,但是其实是创建了两个不同的对象

A==c?比较的是a自动拆箱成Int类型,与c的值比较是否相等 

【延伸】Double类parseDouble()和valueOf()方法的区别?

  1. 参数区别:Double.parseDouble()的参数只能是String,而Double.valueOf()参数类型可以是浮点型或者字符串
  2. 返回类型的区别:Double.parseDouble()把数字类型的字符串转换成double类型;Double.valueOf()把数字类型的字符串转换成Double类型

&按位与:都是1则1

例如:System.out.println(1&2);

0001(1)

0010(2)

0000(0)

|按位或:有1则1

例如:System.out.println(1|2);

0001(1)

0010(2)

0011(3)

^按位异或:相同为0不同为1

<<向左移

0010(2)向左移,左边消两零,往右边补

1000(8)

>>向右移

【面试题】&& & || |区别

&& ||都是逻辑操作

& |可以做位运算也可以做逻辑运算,特点:没有短路功能

 第一行短路了,执行到Flase不执行后面。第二行不会短路

【面试题】switch支持的数据类型有哪些?

  1. switch底层是使用int类型来判断的,int类型是四个字节的整数型类型,所以只要字节小于或等于4的整数型类型都是可以转化成int类型的,所以支持byte[1字节],short[2字节]都是可以理解的,long[8字节]超出了int的范围,因而不支持。

  1. 关于枚举和字符(串)也是转化为int类型间接实现的。枚举是再编译的过程中产生了一个新的数组,switch是通过转化成数组的形式来实现对枚举类型的支持。

【面试题】==和equals的区别

当 "=="运算符的两个操作数都是 包装器类型的引用,则是比较指向的是否是同一个对象,而如果其中有一个操作数是表达式(即包含算术运算)则比较的是数值(即会触发自动拆箱的过程)。

另外,对于包装器类型,equals方法并不会进行类型转换,比较内容

【面试题】如何退出双循环,当i=3 j=4时退出全部循环?

里面控制外层循环条件,break;

 boolean sign = true;
        for(int i=1;i<=5;i++){
            for(int j =1;j<=5;j++){
                System.out.println("i="+i+",j="+j);
                if(i==3 && j==4){
                    sign = false;
                    break;
                }
            }
            if(sign)break;
        }

控制跳出循环条件有:break➕ flag变量法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
达内java培训目录 课程 课程内容 课程目标 第一阶段(以Tetris项目贯穿) Java语言基础 算法基础、常用数据结构、企业编程规范。 掌握常见的数据结构和实用算法;培养良好的企业级编程习惯。 Java面向对象 面向对象特性:封装、继承、多态等,面向对象程序设计,基础设计模式等。 掌握面向对象的基本原则以及在编程实践中的意义;掌握Java面向对象编程基本实现原理。 实训项目一:Tetris项目开发 第二阶段(以T-DMS V1项目贯穿) JDK核心API 语言核心包、异常处理、常用工具包、集合框架。 熟练掌握JDK核心API编程技术;理解API设计原则;具备熟练的阅读API文档的能力;为后续的课程学习打下坚实的语言基础JavaSE核心 异常处理、多线程基础、IO系统、网络编程、Java反射机制、JVM性能调优(JVM内存结构剖析、GC分析及调优、JVM内存参数优化)、Java泛型、JDK新特性 熟练掌握JavaSE核心内容,特别是IO和多线程;初步具备面向对象设计和编程的能力;掌握基本的JVM优化策略。 实训项目二:T-DMS V1项目开发 第三阶段(以T-DMS V2项目贯穿) SQL语言 SQL语句基础和提高、SQL语句调优。 熟练的掌握SQL语句;掌握一定的数据库查询技巧及SQL语句优化技巧。 Oracle数据库 Oracle体系结构及系统管理、Oracle数据库高级编程、数据库设计基础。 掌握Oracle体系结构及核心编程技术 XML XML语法、XML解析(SAX、DOM)、Dom4j组件、Digester组件。 熟练掌握XML语法规则;理解DOM模型;熟悉Java对XML的各种解析方式。 实训项目三:T-DMS V2项目开发 第四阶段(以T-NetCTOSS电信计费系统贯穿) HTML/CSS TML基本文档结构、掌握CSS基础语法、关于HTML文档块、链接、列表、表格、表单等 掌握HTML基本原理;掌握CSS各种选择器及常见样式设置;熟练使用HTML常用元素。 JavaScript核心 JavaScript语言基础(数据类型、函数、对象、闭包)、Java DOM编程、事件模型、JavaScript面向对象编程。 深入理解JavaScript语言原理;熟练的使用JavaScript对HTML DOM进行编程;熟练掌握JavaScript对象对象封装技巧,为后续的JavaScript学习打下坚实的基础。 Servlet/JSP Servlet生命周期及Servlet服务器、Tomcat部署配置、JSP语法、自定义标记、JSTL和EL表达式、JSP 新特性、Java Web 设计模式。 透彻理解Servlet核心原理;熟练掌握Servlet API;透彻理解JSP引擎工作原理;透彻理解标记库原理;熟悉常见的Java Web设计模式;为后续的Java Web开发打下坚实的理论基础。 Ajax Ajax基础、XHR对象、Ajax设计模式、JSON技术。 掌握Ajax的基本通信原理;掌握基于XML和JSON的Ajax数据规则。 Struts2 Struts2核心控制流程、Ognl、Action、Interceptor、Result、FreeMarker、Struts2标记库、Struts2扩展、Struts2应用技巧(输入验证、消息国际化、文件上传和下载、防止重复提交等)。 熟练掌握Struts2核心要件,特别是Interceptor和Result;掌握基于模板技术的Struts2 UI组件;掌握基于Ognl的数据共享方式、掌握Struts2各种定制及扩展方式;熟练掌握基于Struts2的Web开发技巧。 实训项目四:T-NetCTOSS电信计费系统项目开发 第五阶段(以"航空订票"真SS实电项信目计为费贯系穿统项贯目穿) 企业应用开发部署环境 Linux高级命令集脚本编程、远程登录、Ant、单元测试技术、Maven构建技术、SVN应用技术。 熟练掌握基于Linux系统的操作技能;可以熟练的完成应用的部署工作;可以熟练的使用开发部署工具。 Struts2 Struts2核心控制流程、Ognl、Action、Interceptor、Result、FreeMarker、Struts2标记库、Struts2扩展、Struts2应用技巧(输入验证、消息国际化、文件上传和下载、防止重复提交等)。 熟练掌握Struts2核心要件,特别是Interceptor和Result;掌握基于模板技术的Struts2 UI组件;掌握基于Ognl的数据共享方式、掌握Struts2各种定制及扩展方式;熟练掌握基于Struts2的Web开发技巧。 持久层框架技术 ORM概念、Hibernate核心API、Hibernate实体映射技术、Hibernate关系映射技巧、HQL查询、OSCache及Hibernate缓存技术; 掌握JQuery核心API;了解JQuery基本设计原则;了解多种JQuery插件;掌握DWR的基本原理及应用技巧。 Spring技术 Spring Ioc基础、Ioc注入技巧、对象高级装配(自动装配、模板装配、组件扫描特性、FactoryBean、对象生命周期)、Spring AOP原理、AspectJ、Spring JDBC支持、Spring事务及安全管理;Spring整合Hibernate、Spring整合Struts,SpringMVC技术。 深入理解Ioc和AOP的基本原理和实现方式;熟练掌握SpringIoc及AOP实现方式;熟练掌握Spring事务管理;熟练掌握Spring与其他组件的整合技术。• 实训项目五:企业级应用"航空订票"系统开发 1.开班前 5天训练营将完成"捕鱼达人"游戏项目 2.开班 2周内,贯穿着 Java 语言基础Java 面向对象的学习,学员将完成专业版的俄罗斯方块项目 3. 开班一个半月内,贯穿 JavaSE及数据库的学习将完成 T-DMS 数据 采集系统项目 • 整个系统由 DMS 采集端、DMS 服务器端和 NetCTOSS 服务器端三部分组成。 • DMS 采集端的主要任务是采集、解析、匹配和保存并发送登录数据。 • DMS采集端程序采集、解析获得数据后,将处理好的数据发送到DMS 服务器端。 • DMS 服务器端接收到日志数据,将日志数据备份保存为文件数据,并存入数据库。 4.开班3个月内,贯穿Web前端技术和Servlet/JSP的学习,将完成T-NetCTOSS项目: NetCTOSS系统的主要任务是提供对于数据的计费查询和管理功能。 5.开班4个月内,学员将完成"航空订票"真实项目

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值