全部 文章 问答 分享 共找到196个相关内容
[文章] Android 关闭CPU核心模拟低配环境
查到资料,可以关闭CPU的核心或者限制频率来达到目的。仅限于骁龙CPU。环境要求设备必须root!骁龙CPU。adb。
[文章] JAVA Package 和 环境变量
JAVA中的Package关于包网上也有很多关于它的讲解,Thinkinjava和JAVA核心技术都有关于它的介绍,这里列出我的2点理解。1.防止名字相同的类产生冲突。2.方便管理。
2020-08-08 20:13 · JAVA
[问答] 请教关于移动端技术分享

公司近期有一个大型的移动端技术分享会,想请问一下大佬们,有没有什么思路或者技术能指导一二。

2022-02-11 16:43 · android / 移动端
[问答] android英语学习软件开发涉及技术

毕设准备写一个英语学习的app,除了四大组件、数据库,xml数据解析、http网络访问、第三方接口调用,还有什么技术可以补充呀?(拟题时导师说技术过于简单(=_=)大佬赐教!)

2021-10-10 23:39 · 英语学习软件
[文章] Android面试官:你在教我做事吗?
以下是一些面试过程中可能会涉及到的关键环节和问题类别:Java语言相关知识考察Java语言基础知识的面试通常会覆盖多个层次和主题,目的是评估面试者的编程基本功、逻辑思维能力以及对Java核心技术的理解和实践经验
2024-01-26 17:51 · 面试 / 安卓 / 系统 / AOSP / java
[文章] 《Kotlin 核心编程》阅读笔记
@[TOC](《Kotlin核心编程》阅读笔记)第四章代数数据类型和模式匹配代数数据类型(ADT)在计算机编程中,特别是函数式编程与类型理论中,ADT是一种组合类型(compositetype)。
1970-01-01 00:00 · kotlin
[问答] 感觉学院的封面图片都挺好看的,这个作图技术有没有课程(滑稽)
感觉学院的封面图片都挺好看的,这个作图技术有没有课程(滑稽)
2020-07-26 20:03 · PS
[文章] 你是一名行业资深程序员,并且通过业余时间赚了很多钱,程序员有哪些赚钱的路子?
作为一名行业资深程序员,确实可以通过自身技术能力和经验积累在业余时间探索多种赚钱途径。
2024-03-20 10:40 · 程序员 / 日常 / 挑战 / 业余 / 赚钱
[问答] 实现类似QQ的即时聊天app,应该用什么技术
请问各位大牛,实现类似QQ的即时聊天app,应该用什么技术(萌新目前已知的只有tcp/ip,websocket)
2020-06-15 00:10 · 安卓
[文章] Java核心之一 反射
System.out.println(name);}}application.properties配置文件内容:1className=reflect.P#要创建的类的全类名2methdName=aaa#要执行的方法核心文件
2020-09-11 22:29 · 反射 / Java
[文章] Nuxt.js,Vue服务端渲染技术SSR
Nuxt.js,Vue服务端渲染技术SSR目前的前端是使用thymeleaf做的,结合java,部分由服务端渲染,有利于SEO,而部分跟SEO无关的则由客户端渲染,比如说用户信息,比如说用户的排行榜。
2020-01-07 17:35 · SSR / nuxt / vue / 服务端渲染 / 前端
[分享] Java界最神秘技术ClassLoader,吃透它看这一篇就够了
ClassLoader 是 Java 届最为神秘的技术之一,无数人被它伤透了脑筋,摸不清门道究竟在哪里。本文我带读者彻底吃透 ClassLoader,以后其它的相关文章你们可以不必再细看了。
2020-02-19 14:41 · java / ClassLoader / 编程语言 / JVM
[文章] Vue服务端渲染技术SSR-数据加载
#Vue服务端渲染技术SSR-数据加载前面我们已经把架子搭建好了Vue服务端渲染技术SSR-路由但是呢,还没有数据,所以接下来我们要去载一下数据了。
2020-01-08 17:42 · nuxt / vue / 前端 / 前后端分离 / 前端开发
[文章] Vue服务端渲染技术SSR-路由
Vue服务端渲染技术SSR-路由上一篇文章Nuxt.js,Vue服务端渲染技术SSR前面我们使用了手脚架,快速地创建了项目,接下来我们就看一下路由。项目结果目录说明assets资产,资源目录。
2020-01-08 14:42 · vue / nuxt / js / 路由 / 前端
[文章] 黄仁勋台大毕典演说全文
坦诚面对错误,谦卑寻求帮助追求愿景的艰苦过程学会放弃是迈向成功的核心关键演讲是英文的如果你感觉英文还可以,可以移步B站,B站linkhttps://www.bilibili.com/video/BV1ik4y1x7Qf
2023-05-30 11:21 · AI / 人工智能 / 黄仁勋 / 英伟达 / Nvidia
[文章] 《Kotlin核心编程》阅读笔记 第七章 多态和扩展
开放封闭原则开放封闭原则(OCP:OpenClosedPrinciple)是所有面向对象原则的核心。软件设计本身所追求的目标就是封装变化、降低耦合,而开放封闭原则正是对这一目标的最直接体现。
1970-01-01 00:00 · kotlin
[文章] 《kotlin核心编程》阅读笔记 第九章 设计模式
@[TOC](《kotlin核心编程》阅读笔记第九章设计模式)第九章设计模式基于Kotlin崭新的语言特性,实现或替换了Java中部分典型设计模式。
1970-01-01 00:00 · kotlin
[文章] 普通大三的年计划
(这一年读了好多好多的书)重点就是点线面结合,时间线分为考研和职业技能,面就是,钱老(钱学森)的六个面,学习马克思主义,掌握核心知识,学习世界知识“时政”,组织管理知识,文学艺术,身体健康。
2020-12-23 23:31 · 思考记录
[文章] 在博客系统嵌入解析VIP视频
然后我好奇,F12了一下,把他的一个元素复制下来放到了咱们的博客系统,测试了一下虽然没啥技术含量。分享给大家。先看看效果。哈哈哈。分享这种东西有点心虚。2.代码其实实现起来挺简单的。
2020-08-26 18:10 · 播放器 / b站 / 视频解析
[问答] 看过一种技术,就是界面的控件,由用户来拖动,决定放到某个位置,然后保存这个设置,这个布局就确定下来了。是如何实现?
我看过一种技术,就是界面的控件,有用户来拖动,决定放到某个位置,然后保存这个设置,这个布局就确定下来了。【就如在玩模拟器游戏一样,键位由用户设置放到指定的位置并可以保存下来。】
2020-04-28 14:19 · android
[文章] Vue3和Vue2的区别,优缺点,更新内容什么内容?新手学Vue2还是直接学Vue3?
Vue3和Vue2在核心架构上有一些显著的不同点,同时也引入了许多新特性以优化开发体验和性能表现。
2024-01-26 11:03 · vue / vue.js / vue2 / vue3 / 区别
[文章] 买电脑时,你应该了解的CPU知识!
Xeon系列:专为服务器、工作站市场设计,支持多路互联技术,具有高核心数、大内存容量和出色稳定性。
2024-02-19 11:57 · CPU / 组装机 / 电脑 / pc / 芯片
[文章] 《Kotlin核心编程》读书笔记
第三章面向对象更简洁地构造类的对象在Java中,通过重载构造函数,来实现任意参数组合来创建对象,但是这样需要实现的构造方法就会很多。koltin的解决方法:-构造函数默认参数;(如果这样做,在创建对象的时候,最好指定参数的名称)。classBird(valweight:Double=0.00,valage:Int=0,valcolor:String="blue")valbird1=Bird(color="black")valbird1=Bird(1000.0,"blue",1)valbird2=Bird(color="red",age=5)init语句块:它属于上述构造方法的一部分,两者在表现的形式上是分离的。如果需要在构造初始化时进行其他的额外操作就可以使用init语句块。构造方法还可以拥有多个init,它们会在对象被创建时,按照类中从上到下的顺序先后执行。延迟初始化bylazy:语法特点:该变量必须是引用不可变的(即使用val声明);在被首次调用时,才会进行赋值操作。一旦赋值,后续它将不能被更改。lazy的背后是接受一个lambda并返回一个Lazy实例的函数,第一次访问该属性时,会执行lazy对应的Lambda表达式并记录结果。后续访问时就返回该记录。系统会给lazy属性默认加上同步锁,也就是LazyThreadSafetyMode.SYNCHRONIZED,它在同一时刻只允许一个线程对lazy属性进行初始化,因此它是线程安全的。valsexbylazy(LazyThreadSafetyMode.PUBLICATION){//并行模式if(color=="yellow")"male"else"female"}valsexbylazy(LazyThreadSafetyMode.NONE){//不做任何线程保证也不会有任何线程开销if(color=="yellow")"male"else"female"}lateinit:主要用于var声明的变量,然而他不能用于基本数据类型,如Int,Long等,需要使用Integer这种包装类进行替代。主从构造方法:通过constructor方法定义了一个新的构造方法,它被称为从构造方法。如果主构造方法存在注解或可见性修饰符,也必须像从构造方法一样加上constructor关键字。每一个从构造方法有两部分组成,一部分是对其他构造方法的委托,另一部分是由花括号包裹的代码块。执行顺序上会先执行委托的方法,然后执行自身代码块的逻辑。通过this关键字来调用要委托的构造方法。如果一个类存在主构造方法,那么每一个从构造方法都要直接或间接地委托给它。不同的访问控制原则Kotlin中使用冒号":"来进行类的继承和接口的实现。Kotlin中的类和方法默认是不可继承或重写的,有需要的话要加上open修饰符。子类应该尽量避免重写父类的非抽象方法,一旦父类变更方法,子类就方法调用就可能会出错。重写父类的非抽象方法违背了面向对象设计原则中的里氏代换原则。什么是里氏替换原则?通俗的理解:子类可以扩展父类的功能,但是不能改变父类原有功能。包含了4个设计原则:-子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法;-子类可以增加实现自己特有的方法;-当子类的方法实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。-当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。可见性修饰符Kotlin与Java的默认修饰符不同,Kotlin是public,而Java中是default。Kotlin中有一个独特的修饰符internal。Koltin可以在一个文件内单独声明方法及常量,同样支持可见性修饰符。Java中出了内部类可以用private修饰以外,其他类都不允许private修饰,而Kotlin可以。Koltin和Java中的protected的访问范围不同,Java中是包、类、及子类可访问,而Kotlin只允许类及子类。internal在Kotlin中的作用域可以被称为模块内访问。什么算是一个模块呢?一个Eclipse项目,一个IntellijIDEA项目、一个Maven项目,一个Gradle项目,一组由一次Ant任务执行编译的代码Kotlin中的private修饰的类,表示它的作用域就是当前这个Kotlin文件。在Koltin实现一个接口时:-需要实现接口中没有默认实现的方法及未初始化的属性,若同时实现多个接口,而接口间又有相同方法名的默认实现时,需要主动指定使用那个接口方法或重写方法;-如果是默认的接口方法,需要在实现类中通过"super"这种方法调用它,-在实现接口的属性和方法时,都必须带上override关键字,不能省略。Koltin在我们声明一个属性的时候,会帮助生成getter和setter方法。-用val声明的属性将只有getter方法,因为它不可修改,而用var修饰的属性将同时拥有getter和setter方法。-用private修饰的属性,编译器将会省略getter和setter方法,没有必要饿了,因为类外部无法访问。如果我们要在Koltin中使用内部类,需要在类的前面加一个inner关键字。因为Koltin直接写在类中的类为嵌套类。这里的嵌套类可以看成Java中的静态内部类。在某些场合下,内部类确实是一种解决多继承非常好的思路。openclassHorse{funrunFast(){println("Icanrunfast")}}openclassDonkey{fundoLongTimeThing(){println("Icandothinglongtime")}}classMule{funrunFast(){HorseC().runFast()}fundoLongTimeThing(){DonkeyC().doLongTimeThing()}privateinnerclassHorseC:Horse()privateinnerclassDonkeyC:Donkey()}使用委托代替多继承委托是一种特殊的类型,用于方法事件委托,调用A类的methodA方法,其实背后是B类的methodA去执行。在Koltin中,只需通过by关键字就可以实现委托的效果。interfaceCanFly{funfly()}interfaceCanEat{funeat()}openclassFlyer:CanFly{overridefunfly(){println("Icanfly")}}openclassAnimal:CanEat{overridefuneat(){println("Icaneat")}}classBird(flyer:Flyer,animal:Animal):CanFlybyflyer,CanEatbyanimal{}funmain(){valflyer=Flyer()valanimal=Animal()valbird1=Bird(flyer,animal)bird1.eat()bird1.fly()}用dataclass创建数据类。
1970-01-01 00:00 · Kotlin
[文章] Java常见面试题整理
引用数据类型比较的是内存地址equals也是比较两个对象是否相等若类没有覆盖equals判断两个对象是否相等(与==一致)若类覆盖了equals比较的是两个对象的内容,若内容相等返回true2.Java核心技术
2021-03-13 23:09 · 面试题 / Java
[文章] Java线程池详解-笔记
核心线程被创建后会一直存活,即使没有任务需要执行。当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理。
2020-09-03 13:01 · 线程池
[问答] APP在后台或者没有启动APP,APP怎么接收推送消息

如题,沙滩的各位大佬看看这个功能要用到啥技术,现在项目接入的是阿里云推送,现在要求APP在后台或者APP没有启动,都可以接收到推送消息,这个需要啥技术,怎么实现呢?

2021-08-30 15:06 · 推送
[问答] 轮播图界面切换fragment出错
nbsp;Attempttoinvokevirtualmethod'intandroid.widget.LinearLayout.getChildCount()'onanullobjectreference核心代码
2020-03-30 00:22 · 安卓
[文章] 《Kotlin核心编程》阅读笔记 第五章 类型系统
第五章类型系统null引用在Java中如何解决空指针异常:函数内对于无效值,更倾向于抛异常处理。采用@NotNull/@Nullable标注使用专门的Optional对象对可能为null的变量就行装箱。可空类型在Kotlin中,可以在任何类型后面加上“?"Int?等同于Intornull由于null只能被存储在Java的引用类型中,所以在Kotlin中基本数据类型的可空版本都会使用该类型的包装形式,同样,如果使用基本数据类型作为泛型类的类型参数,Koltin同样会使用该类型的包装类。-安全调用"?."XXX?.YYY:当XXX不为null,才调用YYY-Elvis操作符"?:"或合并操作符。-非空断言"!!"类型检查:在Koltin中用is代替Java中的instanceof当类型需要强制转换时,可以利用"as"操作符来实现。Any:非空类型的根类型Kotlin把Java方法参数和返回类型中用到的Object类型看作Any(更确切的说是当作“平台类型”);Any?:所有类型的根类型。Nothing与Nothing?:Kotlin类型层级结构的最底层是Nothing类型。Nothing是没有实例的类型,Nothing类型的表达式不会产生任何值。它只能包含一个值“null”。自动装箱和拆箱Kotlin中的Int类型等同于int;Kotlin中的Int?等同于Integer;Kotlin中有Array,但是并不是一种原生的数据结构,而是一种Array类。甚至我们可以将Kotlin中的Array视作为集合类的一部分。Kotlin中还为原始类型额外引入了一些实用类:IntArray,CharArray,ShortArray等。分别对应了Java中的int[]、char[]、short[].IntArray等并不是Array的子类。Kotlin对原始类型有特殊优化,推荐使用原始类型数组。泛型将参数的类型进行参数化。泛型的优势:类型检查,能在编译时就帮你检查出错误。更加语义化,比如声明一个List<String>,便可以知道里面存储的是String对象,自动类型转换,获取数据时不需要进行类型强制转换;能写出更加通用的代码。在Kotlin中使用泛型的格式也是<T>,<S>类似的。声明一个泛型类和泛型函数:实现定义一个find方法,传入一个对象,若列表中存在该对象,就返回该对象,不存在则返回空;classSmartList<T>:ArrayList<T>(){funfind(t:T):T?{valindex=super.indexOf(t)returnif(index>=0)super.get(index)elsenull}}funmain(){valsmartList=SmartList<String>()smartList.add("qq")println(smartList.find("qq"))println(smartList.find("aa"))}除了上述做法,还可以有扩展函数;funmain(){valarrayList=ArrayList<String>()arrayList.add("qq")println(arrayList.find("qq"))println(arrayList.find("aa"))}fun<T>ArrayList<T>.find(t:T):T?{valindex=this.indexOf(t)returnif(index>=0)this[index]elsenull}类型约束:设定类型上界;示例;需求为:有一把刀只能用来切长在地上的水果(如西瓜)interfaceGround{}openclassFruit(valweight:Double)classApple(weight:Double):Fruit(weight)classBanana(weight:Double):Fruit(weight)classFruitPlate<T:Fruit>(valt:T)//:类型约束,表示只能装水果的盘子classWatermelon(weight:Double):Fruit(weight),Groundfun<T>cut(t:T)whereT:Fruit,T:Ground{println("Youcancut")}funmain(){cut(Watermelon(5.0))}通过where关键字,他可以实现泛型参数类型添加多个约束条件。上面的泛型是在静态时的行为,也就是Kotlin代码编译阶段关于泛型的知识点。publicclassTestArray{publicstaticvoidmain(String[]args){Apple[]applyArray=newApple[10];Fruit[]fruitArray=applyArray;//fruitArray[0]=newBanana(0.5);List<Apple>appleList=newArrayList<Apple>();//List<Fruit>fruitList=appleList;System.out.println(applyArray.getClass());System.out.println(appleList.getClass());}}>>>class[Lchapter5.Apple;>>>classjava.util.ArrayList数组是协变的,而List是不变的。简单来说就是Object[]是所有对象数组的父类,而List<Object>却不是List<T>的父类。从上面的打印结果可以知道,数组在运行时是可以获取自身的类型,而List<Apple>在运行时只知道自己是一个List,而无法获取泛型参数的类型。而Java数组是协变的,也就是说任意的类A和类B,若A是B的父类,则A[]也是B[]的父类。但是假如给数组加入泛型后,将无法满足数组协变的原则,因为在运行时无法知道数组的类型。Kotlin中的泛型机制和Java中是一样的,上面的特性Kotlin中也存在。类型擦除:Java受限于先后兼容的困扰,使用了类型擦除来实现了泛型,但是它还是通过其他方式来保证了泛型的相关特性。泛型在编译后是会擦除泛型类型的,而泛型的一些相关特性,比如类型检查是在编译器在编译前就会帮我们进行类型检查,类型自动转换是通过强制类型转化来实现的。类型擦除的矛盾:在某些场景需要知道运行时泛型参数类型。既然编译后会擦除泛型参数类型,那我们是不是可以主动指定参数类型来达到运行时获取泛型参数类型的效果呢?funmain(){valapplePlate=Plate(Apple(1.0),Apple::class.java)applePlate.getType()}openclassPlate<T>(valt:T,privatevalclazz:Class<T>){fungetType(){println(clazz)}}使用这种方法确实可以到达运行时获取泛型类型参数的效果,但是这样也有限制。vallistType=ArrayList<String>()::class.java//不被允许还可以使用匿名内部类来是实现。funmain(){vallist1=ArrayList<String>()vallist2=object:ArrayList<String>(){}println(list1.javaClass.genericSuperclass)println(list2.javaClass.genericSuperclass)}>>>java.util.AbstractList<E>java.util.ArrayList<java.lang.String>现在可以设计一个能获取到所有类型信息的泛型类:importjava.lang.reflect.ParameterizedTypeimportjava.lang.reflect.TypeopenclassGenericsToken<T>{vartype:Type=Any::class.javainit{valsuperClass=this.javaClass.genericSuperclasstype=(superClassasParameterizedType).actualTypeArguments[0]}}funmain(){valgt=object:GenericsToken<Map<String,String>>(){}println(gt.type)}Gson也是使用的类似方法。在Kotlin中除了用这种方式来获取泛型参数类型以外,还有另一种方式——内联函数。Kotlin中的内联函数在编译的时候编译器便会将相应函数的字节码插入调用的地方。Java并不支持主动指定一个函数是否是内联函数,所有在Kotlin中声明的普通内联函数可以在Java中调用,因为他不会被当做一个常规函数;而用reified来实例化的参数类型的内联函数则不能在Java中调用,因为它永远是需要内联的。打破泛型不变Kotlin中的List与Java的List有区别虽然都叫List,也同样支持泛型,但是Kotlin中的List定义的泛型参数前面多了一个out关键字。这个关键字就对这个List的特性起到了很大作用。普通方式定义的泛型是不变的,简单来说就是不管类型A和类型B是什么关系,Generic<A>与Generic<B>(Generic代表泛型类)都没有任何关系。在Java中String是Object的子类型,但是List<String>并不是List<Object>的子类型。在Kotlin中泛型的原理是一样的。但是,Kotlin的List为什么允许List<String>赋值给List<Any>呢?一个支持协变的List如果在定义泛型类和泛型方法的泛型参数前面加上out关键词,说明这个泛型类及泛型方法是协变的。类型A是类型B的子类型,那么Generic<A>也是Generic<B>的子类型。因为Kotlin的List支持协变,所以他无法添加元素,只能从里面读取内容;List一旦创建就不能再被修改。这便是将泛型声明为协变需要付出的代价。通常情况下,若一个泛型类Generic<outT>支持协变,那么它里面的方法的参数类型就不能使用T类型,因为一个方法的参数不允许传入参数父类型的对象,可能会导致错误。可以添加**@UnsafeVariance**注解来解除这个限制。一个支持逆变的Comparator逆变:类型A是类型B的子类型,但是Generic<B>反过来又是Generic<A>的子类型。加上现在需要对一个**MutableList<Double>**进行排序,利用其sortWith方法,我们需要传入一个比较器:valdoubleComparator=Comparator<Double>{d1,d2->d1.compareTo(d2)}funmain(){valdoubleList=mutableListOf(2.0,3.0)doubleList.sortWith(doubleComparator)for(iindoubleList){print("$i")}}但是如果又需要对MutableList<Int>,**MutableList<Long>**等进行排序,那我们可能又需要定义不同的Comparator。试想定义一个比较器,给这些列表用,这些数字类的共同父类是Number类。valnumberComparator=Comparator<Number>{num1,num2->num1.toDouble().compareTo(num2.toDouble())}funmain(){valdoubleList=mutableListOf(2.0,3.0)doubleList.sortWith(numberComparator)for(iindoubleList){print("$i")}println()valintList=mutableListOf(5,1)intList.sortWith(numberComparator)for(iinintList){print("$i")}}结果是成功运行了,这说明是可以这样做的。publicfun<T>kotlin.collections.MutableList<T>.sortWith(comparator:kotlin.Comparator<inT>/*=java.util.Comparator<inT>*/):kotlin.Unit{/*compiledcode*/}这里又出现了一个in关键词、和out类似,它也是泛型有个另一个特性——逆变:类型A是类型B的子类型,但是Generic<B>反过来又是Generic<A>的子类型。用out关键字声明的泛型参数类型将不能作为方法的参数类型,但是可以作为方法的返回值类型。而in刚好相反。协变和逆变类型通配符代替泛型参数,Java中的泛型类型通配符为"?",而Koltin中用"*"来表示类型通配符。
1970-01-01 00:00 · kotlin
[文章] 如何学习Flutter?
关注社区资源:参加Flutter社区讨论,关注官方博客和技术文章,及时跟进技术动态。7.资源推荐官方文档:Flutter官方网站提供了详细的开发指南和API参考。
[文章] 各在平台的热门数据 扒拉接口
/mybatis.org/mybatis-3/zh/index.htmlgit文档https://git-scm.com/book/zh/v2推荐网站iconfontwww.iconfont.cn美团技术
2022-08-13 16:33 · 干货 / 链接 / 友情链接 / 摸鱼君 / 热门
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7